Dot-Net
MSBuild - 如何從預先編寫的命令行命令建構 .NET 解決方案文件(在 XML 任務腳本中)
我一直在研究 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>