Tag: msbuild

如何禁止特定的MSBuild警告

有什么办法从命令行运行MSBuild时禁用特定的MSBuild警告(如MSB3253)? 我的构build脚本以如下方式调用msbuild.exe: msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release 我发现我可以使用msbuild.exe的另一个参数来禁止C#警告(例如CS0618): msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release /p:NoWarn=0618 但是,这种方法不适用于MSBuild警告。 也许还有另一个魔法属性设置? 我正在使用.NET 3.5和VS2008。

MSBuild在Visual Studio 2012解决scheme的TeamCity中

我有一个VS 2012 web项目/ sln,我正在尝试在TeamCity中构build。 它使用安装在TeamCity上的.NET 4.5。 TeamCity服务器只安装了VS 2010 。 生成运行时出现此错误: C:\BuildAgent\work\d5bc4e1b8005d077\CUSAAdmin.Web\CUSAAdmin.Web.csproj(799, 3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. Project CUSAAdmin.Web\CUSAAdmin.Web.csproj failed. Project CUSAAdmin.sln failed. 它试图使用Visual Studio 2012(v11.0)来构build。 我已经在build.xml中将VisualStudioVersion设置为10了 。 <Target Name="BuildPackage"> <MSBuild Projects="CUSAAdmin.sln" […]

如何防止发布模式构build的XML文档文件的副本?

我有一个Visual Studio 2010项目引用一些第三方组件。 他们的程序集伴随着XML文档文件,这对我们(也是唯一的)开发人员非常有用。 无论何时build立项目(无论是在debugging还是发行模式下),这些XML文件都被复制到构build目录。 我似乎无法find一个设置或切换到禁用这些XML文件复制到生成目录,在Visual Studio或MSBuild。 后期构build脚本可能是一个选项,但臭的一个。 有任何想法吗? 谢谢。

TeamCity说在MSBuild步骤中使用“Build Parameters”而不是“/ property:”。 那是什么意思?

我有一个TeamCity服务器设置来执行我的CI构build。 我正在构build和testing一个C#解决scheme并运行一些自定义的MSBuild任务。 其中一个任务是在我的编译输出中打印警告。 MSBuild命令行参数包含“/ property:”或“/ p:”参数。 请使用Build参数。 我不明白这是什么意思或如何删除它。 它不好Google(有或没有错字)。 我从命令行(使用/verbosity:diagnostic )运行任务,但没有出现,所以我相信这是一个TeamCity消息。 MSBuild的任务是 <Target Name="InstallDb"> <MakeDir Directories="$(DbPath)" /> <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseDrop.sql" /> <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseCreate.sql -v DbPath=&quot;$(DbPath)&quot;" /> <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseProgrammability.sql" /> </Target> 而相关的TeamCity步骤信息是 MSBuild版本:4.0 MSBuild ToolsVersion:4.0 运行平台:x64 目标:InstallDb 命令行参数:/property:DbPath=%env.DB_PATH%

保持打开,locking文件msbuild.exe

我使用TeamCity,然后调用msbuild(.NET 4)。 我有一个奇怪的问题,那就是在构build完成之后(它看起来好像不是一个成功的构build),msbuild.exe保持打开状态,并locking其中一个文件,这意味着每当TeamCity尝试清除其工作目录,则失败,无法继续。 几乎每次都发生这种情况。 我真的迷失在这一个,所以我会尽量提供尽可能多的细节。 服务器是英特尔酷睿i7,2 GB RAM,采用Windows Server 2008标准64位SP2。 在TeamCity中,msbuild runnerconfiguration了/m命令行参数(这意味着使用多个核心) 有问题的文件总是在External Tools\Telerik\Telerik.Reporting.Dll的path中的.NET项目之一引用相同的外部DLL。 (在External Tools目录中包含几个其他.DLL文件在一个类似的path结构,永远不会造成这个问题)。 目前这是与Telerik报告的试用版,以防有什么不同。 当问题发生时,任务pipe理器中总会有几个msbuild.exe *32进程列出:我相信有7个。使用Process Explorer,它们看起来都像顶级进程(没有父母)。 他们都使用20-50MB的RAM和0.0%的CPU。 如果我等1-3分钟,msbuild.exe进程将自行退出,然后TeamCity可以正确更新工作目录。 如果我手动终止msbuild进程,TeamCity的更新将立即再次工作。 索引服务在Windows中被closures(虽然之前的两点几乎证实了它是msbuild.exe导致的问题)。 Telerik.reporting.dll没有特殊的属性。 唯一的SVN属性是svn:mime-type = application/octet-stream 有没有人跑过这个呢?

在Build Server上构build不带Visual Studio的ASP.NET 4.5

自从我安装了一个Build Server之后,我已经有一段时间了,所以也许我已经忘记了一些东西,或许.NET 4.5与我上次做的任何版本都不一样,但这是我的问题。 我试图build立一个构build服务器来监视一个源代码控制库。 无论什么时候改变,我想让服务器去修改并build立项目。 如果没有错误,我想将网站部署到生成服务器上运行的网站。 在过去,当我这样做,我以为我能够做到这一点只有NET安装,但是当我尝试build立这个项目,我得到一个错误,“C:\ Program Files \ MSBuild \微软\ VisualStudio的\ V11 .0 \ WebApplications \ Microsoft.WebApplication.targets“缺less,如果我去看看,我可以看到它缺less。 实际上没有Visual Studio 11的目标文件。 经过了很多的思考和搔头,我走出去,得到了“Windows 8 / .NET 4.5 SDK”认为NET 4.5 SDK可能会安装我需要的目标文件,但它没有,除非我错误地安装它的错误。 那么,为了让项目构build起来,我需要在Build Server上放置什么。 我宁愿不必安装完整的Visual Studio 2012。

Visual Studio中大型解决scheme的最佳实践(2008)

我们有大约100多个项目的解决scheme,其中大多数是C#。 当然,开放和build设需要很长时间,所以我正在寻找这样的野兽的最佳实践。 沿着我希望得到答案的问题,是: 你如何最好地处理项目之间的参考 应该“复制本地”打开还是closures? 应该每个项目build立到自己的文件夹,或者他们都build立到相同的输出文件夹(他们都是同一个应用程序的一部分) 解决scheme的文件夹是组织东西的好方法吗? 我知道把解决scheme分解成多个更小的解决scheme是一种select,但是它有自己的一套重构和构build头痛,所以也许我们可以把它保存为一个单独的线程:-)

NuGet自动包恢复不适用于MSBuild

我想用MSBuild 12.0构build一个packages内容丢失的解决scheme(里面除了repositories.config )。 我希望它可以在构build之前自动恢复所有丢失的包,但事实并非如此 – MsBuild报告了大量的错误: “你是否缺less使用指令或程序集引用?” NuGet Manager是2.7(我在Visual Studio 2013中看到这个关于框)。 我什至试图传递EnableNuGetPackageRestore=true参数 – 没有运气。 我错过了什么?

如何将msbuild升级到C#6?

我想在我的项目中使用C#6(空传播,其他function)。 我已经在我的电脑上安装了VS 2015,它的function非常出色,并且构build了类似的testing代码 var user = new SingleUserModel(); //all model fields are null var test = user.User?.Avatar?["blah"]; 但是当我把我的项目推到回购和CI开始build立它,构build失败,因为不受支持? 。 我也在CI服务器上安装了VS2015,但是它不会使用它。 我能做什么? CI – CruiseControl .NET与C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe

无法findv120的构build工具(Platform Toolset ='v120')

在windows 8 x64上使用visual studio 2012显然这是由于msbuild被移入.net引起的,但是我还没有看到如何修复它。 4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects…". Install v120 to build using the v120 build tools. 2>C:\Program Files […]