2016-07-20 1 views
1

ビルドツールでアセンブリリファレンスを更新し、最新バージョン(v12)のmicrosoft.build、microsoft.build.engineとmicrosoft.build.framework。しかし、BuildManagerを使用してプロジェクトをコンパイルしているとき(コンパイル時にRebuildオプションを使用)、ターゲット:CleanWebsitesPackageCoreでエラーMSB4127で失敗します: "CheckPathAttributes"タスクをアセンブリ "C:\ Program Files )\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll "タスクアセンブリがインストールされているものと同じバージョンのMicrosoft.Build.Frameworkアセンブリを使用してビルドされていることを確認してくださいあなたのホストアプリケーションにMicrosoft.Build.Frameworkのバインディングリダイレクトがないことを確認してください。 'Microsoft.Web.Publishing.Tasks.CheckPathAttributes'タイプのオブジェクトをキャストして 'Microsoft.Build.Framework.ITask'と入力できません。最新のmicrosoft.build.dll、v12.0.0.0でbuildManagerを使用しているときにビルドに失敗する

注目すべき点は、コマンドプロンプトからMSBuild.exeを呼び出すことによってプロジェクトを直接コンパイルしようとすると、問題なくコンパイルされることです。ログを見ると、 "CleanWebsitesPackageCore"というターゲットが "クリーン"な部分の中で決して呼び出されていないことがわかりました。ビルドマネージャーを使用しているときにターゲットが呼び出され、コマンドプロンプトでmsbuild.exeを直接呼び出すときにターゲットが呼び出される理由が分かりませんか?

これはなぜこのように起こっているのですか?前もって感謝します。

+0

あまりにも多くのバージョンを追加します。キャストエラーは、間違ったバージョンのMicrosoft.Build.Frameworkを参照していると言います。私のマシンではバージョン14でGACに保存されています。 –

+0

私はc:¥Program Files(x86)¥MSBuild¥12.0¥binからmicrosoft.build、microsoft.build.engine、およびmicrosoft.build.frameworkを参照しています。したがって、これは12.0未満のMSBuildでコンパイルされないのですか? – Deepu

+0

バージョン12ではなく、バージョン14であり、私のマシンでは動作しません。おそらくあなたのどちらにも、結果が与えられていないでしょう。使用しているMSBuild.exe.configファイルを見てください。これらのバージョン番号の問題を解決するために、bindingRedirect要素の* lot *があります。あなたのapp.configファイルにはそれらがありません。 –

答えて

3

リファレンス・ソリューション:http://blogs.microsoft.co.il/idof/2008/11/24/what-does-entity-framework-has-to-do-with-msbuild/

App.configファイルは、周りのMSBuildのこのdependentAssembly

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Build.Framework"   publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> 
     <bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="12.0.0.0"/> 
    </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
+0

ありがとうErkan ..それは後に働いた – Deepu

関連する問題