Dot-Net

MSBuild - 如何從預先編寫的命令行命令建構 .NET 解決方案文件(在 XML 任務腳本中)

  • February 25, 2011

我一直在研究 MSBuild,因為我需要自動化我的開發商店的建構。我能夠輕鬆編寫一個呼叫 VS 命令提示符並將我的 MSBuild 命令傳遞給它的 .BAT 文件。這工作得很好,有點漂亮。

這是我的 .BAT 建構文件的內容:

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat"
cd  C:\Sandbox\Solution
msbuild MyTopSecretApplication.sln /p:OutputPath=c:\TESTMSBUILDOUTPUT /p:Configuration=Release,Platform=x86
pause

^ 這很好用,但我現在需要為 TeamCity CI 使用 MSBuild 任務。我曾嘗試編寫一些 MSBuild 腳本,但無法讓它們正常工作。我在 .BAT 文件中使用的命令的等效建構腳本是什麼?有任何想法嗎?

我試過使用這樣的東西,但沒有成功(我知道這是錯誤的):

<?xml version="1.0"?>
<project name="Hello Build World" default="run" basedir=".">

<target name="build">
   <mkdir dir="mybin" />
   <echo>Made mybin directory!</echo>

 <csc target="exe" output="c:\TESTMSBUILDOUTPUT">
   <sources>
     <include name="MyTopSecretApplication.sln"/>
   </sources>
 </csc>
 <echo>MyTopSecretApplication.exe was built!</echo>
</target>

<target name="clean">
   <delete dir="mybin" failonerror="false"/>
</target>

<target name="run" depends="build">
 <exec program="mybin\MyTopSecretApplication.exe"/>
</target>

我只需要一個 MSBuild XML 建構腳本,它將發布模式的單個解決方案編譯到指定的輸出目錄。有什麼幫助嗎?

使用 MSBuild 任務建構傳遞所需屬性的解決方案。

<?xml version="1.0" encoding="utf-8"?>
<Project
   xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
   ToolsVersion="4.0"
   DefaultTargets="Build">

   <PropertyGroup>
       <OutputDir>c:\TESTMSBUILDOUTPUT</OutputDir>
   </PropertyGroup>

   <ItemGroup>
       <ProjectToBuild Include="MySecretApplication.sln">
           <Properties>OutputPath=$(OutputDir);Configuration=Release</Properties>
       </ProjectToBuild>
   </ItemGroup>

   <Target Name="Build">
       <MSBuild Projects="@(ProjectToBuild)"/>
   </Target>

</Project>

引用自:https://stackoverflow.com/questions/5119913