3

チーム シティ サーバーで .Net 4.5.1 Web プロジェクトを構築しようとしています。アセンブリが含まれているように見えるWindows 8.1 SDKをインストールしMicrosoft.Build.Tasks.v4.0.dllました。ただし、プロジェクトをビルドしようとすると、まだエラーが発生します。

C:\TeamCity\buildAgent\work\bdb0a42dd3d7277\.nuget\NuGet.targets(71, 9): error MSB4175: The task factory "CodeTaskFactory" could not be loaded from the assembly "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v4.0.dll". Could not load file or assembly 'file:///C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v4.0.dll' or one of its dependencies. The system cannot find the file specified.

ビルド サーバーに何をインストールするか、ビルド環境からコピーする必要がありますか?

アップデート

質問はまだ未解決ですが、今のところ、プロジェクト ファイルを編集して MSBuild 12 ではなく 4.0 を使用することで問題を解決しました。

4

6 に答える 6

3

http://www.beta.microsoft.com/VisualStudio/feedback/details/806393/error-trying-to-build-using-msbuild-from-code msbuildを介してタスクを使用すると、これに似た問題が発生しましrake

こんにちは、フィードバックありがとうございます。MSBuild が .NET Framework から移行したことの副作用として、この問題が発生していると思います (詳細はこちら: http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild -is-now-part-of-visual-studio.aspx )。

プロジェクトは、まだ .NET Framework にある古いバージョンの MSBuild を参照しています。このバージョンは、Visual Studio 2013 まで使用されていました。Visual Studio 2013 からプロジェクトをデバッグしているため、VisualStudioVersion 環境変数は自動的に「12.0」に設定されます。これにより、2013 コード分析ターゲットがプロジェクトと共に読み込まれますが、VS 2013 は MSBuild 12.0 のみを使用するため、これらのターゲットは古いバージョンの MSBuild と互換性がありません。

于 2014-04-16T07:00:21.307 に答える
2

この問題は、Microsoft Build Tools 2013をインストールすることで解決できます。インストールが完了した後 (および場合によっては TeamCity サーバーの再起動)、TeamCityのすべての「MSBuild」タイプのステップMicrosoft Build Tools 2013のオプションとして使用できるようになります。MSBuild versionこれを選択すると、すべてがうまくいきます。

サーバー上のフットプリントが大幅に小さくなるため、VSをビルドサーバーにインストールするよりもこれをお勧めします。

于 2014-08-11T20:47:03.827 に答える
1

ここで誰が悪いのかはわかりませんが、msbuild または team city のどちらかが逆になっています。

関連する 2 つのファイルは次のとおりです。

C:\Program Files (x86)\MSBuild\12.0\Bin\Microsoft.Build.Tasks.v12.0.dll C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Build.Tasks.v4.0.dll

チーム都市のエラー メッセージMicrosoft.Build.Tasks.v4.0.dllC:\Program Files (x86)\MSBuild\12.0\bin\フォルダに が必要な場合は、 からそこにコピーしますC:\Windows\Microsoft.NET\Framework\v4.0.30319\。またはMicrosoft.Build.Tasks.v12.0.dllC:\Windows\Microsoft.NET\Framework\v4.0.30319\フォルダー内に必要な場合は、フォルダーからコピーしC:\Program Files (x86)\MSBuild\12.0\Bin\ます。

私にとって、魔法のコンボは次のとおりでした。

  • MSBuild バージョン: Microsoft .NET Framework 4.5
  • MSBuildTools バージョン: 4.0

そして私はにコピーしMicrosoft.Build.Tasks.v12.0.dllましたC:\Windows\Microsoft.NET\Framework\v4.0.30319\

于 2014-01-24T07:30:17.907 に答える
0

何が問題なのかわかりませんが、Team City エージェントを実行しているコンピューターには常に Visual Studio をインストールしています。通常、MSBuild、.NET、ビルド ターゲットなど、関連するすべての依存関係を解決します。

.NET 4.5.1 の場合、Visual Studio 2013 になります。

別のアドバイス - Team City は、VS 2013 と関連ビルド ツールのサポートを TC 8.1 にのみ追加しました - http://confluence.jetbrains.com/display/TW/Gaya+8.1+EAP1+%28build+29353%29+Release+Notes#Gaya8 .1EAP1%28build29353%29ReleaseNotes-MSVisualStudio2013 は buildrunners でサポートされています。おそらく、最新の TC にアップグレードすると役立つ場合があります。

于 2014-02-06T11:48:37.930 に答える
-2

csproj ファイルの " を に変更します。必要なのはこれだけです。

于 2014-09-09T20:10:15.080 に答える