Tag: msbuild

团队城市未满足要求:MSBuildTools12.0_x86_Path存在

我在x32 Server2008 windows机器上安装了TeamCity。 我已经运行.net 4.5 web安装。 我也复制了基于这篇文章的x64机器上的文件,所以我不需要安装vs2012(不过,我确实已经改变了在32位机器上删除x86的path): MSBuild在Visual Studio 2012解决scheme的TeamCity中 我似乎无法让本地代理运行在vs2012或vs2010项目中为msbuild设置的构build。 我不断收到: 未满足的要求:MSBuildTools12.0_x86_Path存在 我重新启动了服务器多次,并重新启动代理。 我已经尝试了一些与pathvariables混合,但不能找出我失踪。 我已经在configuration参数中看到了,可以看到这些: MSBuildTools2.0_x86_Path C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 MSBuildTools3.5_x86_Path C:\ Windows \ Microsoft.NET \ Framework \ v3.5 MSBuildTools4.0_x86_Path C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 如何在那里得到12.0?

如何通过我们的CI平台(Hudson)自动增加C#程序集版本?

我自己和我的团队在增加程序集版本号方面是可怕的,我们经常以1.0.0.0版本发布程序集。 显然,这导致了很多头痛。 通过我们的CI平台,我们的实践变得越来越好,我真的希望将其设置为在assemblyinfo.cs文件中自动增加值,以便我们的程序集版本自动更新那个集会。 我以前设置(之前我们发现Hudson )通过msbuild或命令行(不记得)增加值,但与哈德森,这将更新SVN存储库,并触发另一个版本。 Hudson每小时轮询一次SVN会导致一个缓慢的无限循环。 有哈德森增加版本号一个坏主意? 什么是替代方法呢? 理想情况下,我的解决scheme标准是: 在构build之前增加buildinfo.cs中的内部版本号 只增加已更改的程序集中的内部版本号。 这可能是不可能的,因为Hudson每次构build时都会擦除项目文件夹 将更改的assemblyinfo.cs提交到代码库(当前为VisualSVN ) 不会导致Hudson在下次扫描更改时触发新的构build 在我的脑海里解决这个问题,我可以很容易地通过batch file/命令想出一个解决scheme,但是我所有的想法都会让Hudson在下一次扫描时触发一个新的构build。 我不是在找人为我做所有事情,只是指出我的方向是正确的,也许是让哈德森忽略某些SVN提交等技巧。 到目前为止,我发现的所有内容都只是一篇文章,解释如何自动增加版本号,没有考虑到可能陷入无限循环的CI平台。

如何在MSBuild中执行Exec Command中的引号

我试图构build一个MSBuild脚本,将networking驱动器映射到脚本中的驱动器号,但不幸的是目标文件夹的path包含embedded的空间。 embedded的空间导致映射失败,我不知道是否有可能逃避报价周围的path。 我试过双引号,但MSBuild不喜欢它(或者说Windows XP不喜欢它)。 任何人都知道如何编码这个野兽,所以地图的作品? <Exec Command="net use x: \\ofmapoly703\c$\program files\ar\iap /user:$(UserID) $(Password)" WorkingDirectory="c:\" ContinueOnError="false" /> 当然embedded的空间出现在“程序文件”中。

在没有Visual Studio 2010的情况下安装MSBuild 4.0

我在我的笔记本电脑上安装了.NET 4.0和VS 2010 RC,并自动安装了MSBuild。 我希望通过安装不带VS 2010的.NET SDK来构build一个持续集成的服务器,所以我在这个链接上从Microsoft下载了.NET 4.0 Framework。 不幸的是,它似乎没有安装MSBuild这个下载(或者至less我找不到)。 这是链接适当的SDK的链接,或者这只是运行时? 如果没有,SDK的链接在哪里? 我有点怀疑它是整个SDK,因为它只有35MB的.NET 3.5 SP1下载超过200MB。

MSBuild内置variables列表

我怎样才能得到一个内置的MSBuildvariables列表? 我需要知道如何确定当前项目的csproj名称,并认为知道我还能在MSBuild中find什么是有用的。

从解决scheme中删除nuget包恢复

我使用“启用NuGet包恢复”将最近的nuget包恢复function添加到解决scheme中: http ://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages 然而,它打破了我的生成服务器,我没有时间来解决它,所以我想删除它。 据我所知没有select,所以我从我的所有* .csproj文件手动删除以下行: <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> 现在的问题是,每次我的* .csproj文件签出或打开我的解决scheme,该行会自动添加,打破我的构build,如果我不小心检查它:( 任何想法,我可以永久删除它? 更新:尽pipe下面的答案,它仍然不断回来打开解决scheme,任何人有同样的问题?

“指定条件”$(PackageAsSingleFile)“评估为”“,而不是一个布尔?

在“公共networking”中预览时,我的电脑上的Visual Studio 2012会收到以下错误消息。 我需要重新启动VS来摆脱错误信息。 由于exception“指定条件”$(PackageAsSingleFile)“计算为”“而不是布尔值,所以调用构build失败。 C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.targets' 什么导致了错误?

NAnt或MSBuild,哪一个select什么时候?

我知道有堆栈溢出其他NAnt和MSBuild相关的问题,但我找不到两者之间的直接比较,所以这里是问题。 什么时候应该selectNAnt over MSBuild? 哪一个更好? NAnt更适合家庭/开源项目和MSBuild工作项目吗? 两者中的任何一个有什么经验?

Delphi XE自定义构build目标始终处于禁用状态

我已经创build了一个自定义的MSBuild .targets文件,通过IDE将其包含在Delphi XE项目中,并从项目pipe理器的上下文菜单启用它。 虽然文件validation,但是我重新保存项目文件后,它总是被禁用。 这里有一个名为Custom.targets的目标文件的简化版本。 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="Hello"> <Message Text="Hello from custom target"/> </Target> </Project> 作为一个独立的文件,按预期工作:键入… MSBuild Custom.target /t:Hello …在命令行给出预期的消息。 通过IDE将Custom.targets添加到Delphi项目中,按预期在项目pipe理器中显示文件,现在.dproj文件包含行… <TargetsFile Include="Custom.targets"/> 我在IDE的项目pipe理器中右键单击该文件并selectEnable 。 但是当项目build立时, Build消息窗口显示: [MSBuild警告] Custom.targets(1):忽略禁用导入: PathToProjectSource\\Custom.targets 在项目pipe理器中再次右键单击仍显示Enable选项而不是预期的Disable 。 在命令行MSBuild ProjectName.dproj /t:Hello也失败。 我已经尝试黑客.dproj文件添加行… <Import Project="Custom.targets"/> 键入MSBuild ProjectName.dproj /t:Hello现在MSBuild ProjectName.dproj /t:Hello 。 但是下一次我从IDE中保存项目文件时, <Import>语句被删除。 任何人有什么想法是什么问题?

如何使用msbuild发布Web?

Visual Studio 2010有一个“发布”命令,允许您将Web应用程序项目发布到文件系统位置。 我想在我的TeamCity构build服务器上执行此操作,所以我需要使用解决scheme运行器或msbuild执行此操作。 我尝试使用发布目标,但我认为这可能是ClickOnce: msbuild Project.csproj /t:Publish /p:Configuration=Deploy 我基本上想做一个web部署项目,但没有加载项。 我需要它来编译WAP,删除任何不必要的执行文件,执行任何web.config转换 ,并将输出复制到指定的位置。 我的解决scheme ,基于杰夫·斯维尔的答案 <Target Name="Deploy"> <MSBuild Projects="$(SolutionFile)" Properties="Configuration=$(Configuration);DeployOnBuild=true;DeployTarget=Package" ContinueOnError="false" /> <Exec Command="&quot;$(ProjectPath)\obj\$(Configuration)\Package\$(ProjectName).deploy.cmd&quot; /y /m:$(DeployServer) -enableRule:DoNotDeleteRule" ContinueOnError="false" /> </Target>