私は、複数のバージョンで自分のプロジェクトをビルドするための小さな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 Professionalがインストールされています。私はまた、.NET 4.5には独自のMSBuild.exeがないことに気付きました。バージョン4.0のものを使用していますか?
更新
私は、各バージョンのVisual Studioでそれを構築し、すべてのアセンブリは異なっています。私のスクリプトには何か問題があります。私は故意にTargetFrameworkVersionパラメータ名を間違って入力しましたが、同じ出力を作成して生成しました。おそらく、プロジェクトファイルからそのパラメータを上書きすることができないか、私が紛失している他のパラメータがあります。これ以上のアイデアは?
:これを試してみてください。私の場合、すべてのアセンブリは、.NET 2とAnyCPUを使用して構築されています。次に、ILMergeとcorflagsを使用して、.NETバージョンとビット数の組み合わせのための4つの実行可能ファイルのセットを生成します。魅力を発揮します(私の場合は、4つの設定すべてでngenを使用するために特別です)。 – leppie
どうやって比較していますか?あなたはbyte-for-byteを比較していますか? –
@splatteredbits yes –