我寫了一個小小的MSBuild腳本來構建我的項目在多個版本。當我從VS2012命令提示符運行它時,它不起作用,我沒有遇到任何錯誤或異常。但是,當我比較生產的組件時,它們是相同的。我的腳本中有錯嗎?我的構建腳本是否針對多個目標框架正常工作?
<Target Name="Build">
<MSBuild Projects=".\WcfClientBase\WcfClientBase.csproj"
Properties="Configuration=Release;OutputPath=.\BuildArtifacts\net45;TargetFrameworkVersion=v4.5" />
<MSBuild Projects=".\WcfClientBase\WcfClientBase.csproj"
Properties="Configuration=Release;OutputPath=.\BuildArtifacts\net40;TargetFrameworkVersion=v4.0" />
<MSBuild Projects=".\WcfClientBase\WcfClientBase.csproj"
Properties="Configuration=Release;OutputPath=.\BuildArtifacts\net35;TargetFrameworkVersion=v3.5" />
</Target>
我安裝了VS2012專業版。我也注意到.NET 4.5沒有自己的MSBuild.exe。它使用的是4.0版本嗎?
更新
我與Visual Studio每個版本建立了它和所有的組件是不同的。我的腳本有問題。我故意錯誤輸入了TargetFrameworkVersion參數名稱,但仍然構建並生成了相同的輸出。也許它無法覆蓋項目文件中的參數,或者我缺少其他參數。還有什麼想法?
我只是使用ILMerge將.NET 2可執行文件更改爲.NET 4; p請記住,入口點決定了運行時版本。在我的情況下,所有程序集都是以.NET 2爲目標並使用AnyCPU構建的。然後,我使用ILMerge和corflags爲.NET版本和位組合生成一組4個可執行文件。作品魅力(在我的情況下,專門爲所有4種配置使用ngen)。 – leppie
你最近怎麼做比較?你比較字節爲字節? –
@splatteredbits是 –