2013-08-19 177 views
1

我試圖合併一個Visual Studio 2010項目到2012年的2010解決方案有其輸出可通過在2012年出版我們的構建腳本看起來像這樣被複制的部署項目:Nant使用devenv構建和發佈Visual Studio 2012解決方案?

<target name="buildSolution"> 
    <delete file="${BuildRootFolder}\build.log" /> 
    <exec program="devenv.exe" verbose="true" timeout="2400000" 
     commandline='/out build.log ${BuildRootFolder}\Solution.sln /Build "Release" /deploy Solution' 
     basedir="C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"> 
     <environment> 
      <variable name="PATH" 
      value="blah blah...."> 
     </environment> 
    </exec>  
</target> 

我如何更新它以使用我定義的發佈配置文件發佈該解決方案中的其中一個項目?

回答

2
Forget devenv and use msbuild. 

<property name="MSBuildPath" value="C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"/> 
    <target name="buildSolution" depends="clean"> 
     <exec program="${MSBuildPath}"> 
      <arg line='"${BuildRootFolder}\Solution.sln"' /> 
      <arg line='/property:Configuration="Release";DeployOnBuild=true;PublishProfile=Deployment' /> 
      <arg value="/target:Build" /> 
      <arg value="/verbosity:normal" /> 
      <arg value="/nologo" /> 
     </exec> 
    </target> 
+0

當你說忘記devenv的意思它不再與2012年工作,或者只是沒有比的MSBuild –

+0

我能想到的一個好處是,我們不必構建服務器上安裝Visual Studio,如果我們使用MSBuild.exe –

+1

@MubasharAhmad我無法弄清楚如何讓它與devenv一起工作,但我可以用msbuild。我沒有使用構建服務器,因此讓Visual Studio對我來說不是問題,但這是另一個優點。 – Shawn

相關問題