4

アップデート:

ついにライセンスを修正し、ビルドエージェントにVisual Studio 2012をインストールしたので、更新しました。インストールが完了するとすぐに、すべてが完全に構築されました。

すべての回答と支援をありがとうございました。私が受け入れた答えは、このオプションを4番目に試すオプションとしてリストしました。他のすべてを試しましたが、これがすべてでした。

Windows Server 2008 R2ビルドマシンでWCFライブラリプロジェクトをビルドしようとすると、次のエラーが発生します。

C:\BuildAgent\work\e8ce1d5b0f26c529\Configuration\ECUWeb\EcuWeb.ServiceLib\EcuWeb.ServiceLib.csproj(90, 3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

プロジェクト構成\ECUWeb\ EcuWeb.ServiceLib\EcuWeb.ServiceLib.csprojが失敗しました。

ビルドエージェントにはVisualStudio2010と.net4.5がインストールされていますが、マシンでVS2012を使用しています。インストールできるSDKはありますか、それともVS2012をインストールする必要がありますか?また、これはソリューションファイルでMSBuildを実行するだけのteamcityタスクです。

4

2 に答える 2

4

CI 環境に「必需品」がない場合、いくつかの解決策を見つけました。

1 : SDK をインストールします (前述のとおり)。

2 : ときどき、VS20xx がインストールされているマシンから「.targets」ファイルを手動でコピーできます。これは、簡単に修正できるという点で、実際には良いシナリオです。

例: ビルド サーバーで Microsoft.WebApplication.targets が見つかりませんでした。あなたの解決策は何ですか?

3: SDK のインストールに「似ている」もの。あちらこちらに追加パッケージ。次に例を示します。

データベース プロジェクトでの tfsbuild のビルド エラー

4 : ときどき、マイクロソフトはあなたを台無しにします。唯一の手段は、本格的な Visual Studio をインストールすることです。CI マシンは Visual Studio を必要としないはずなので、これは嫌いです。

于 2013-02-20T16:08:42.117 に答える
3

確認すべきことの 1 つは、参照が必要かどうかを判断することです。

Microsoft.VisualStudio.ServiceModel.targets への参照を含む .csproj ファイルを含む 2012 ソリューションがありました。VS 2012 から VS 2013 にアップグレードしていました。デスクトップとラップトップと呼ぶ 2 台のマシンがありました。DESKTOP には VS 2012 があり、VS 2013 もインストールしました。したがって、次のファイルが存在し、ソリューションをコンパイルできました。

$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets

LAPTOP には VS 2012 がありませんでした。2013 を最初からインストールし、ソリューション (TFS ソース管理下にある) を機能させようとしていました。上記のエラーが発生しました(VisualStudio.ServiceModel.targetsが存在しません...宣言が正しいことを確認してください)。

このファイルさえ必要ないことがわかりました.DESKTOPの.csprojファイルで、要素をコメントアウトしただけで、ソリューションは正常に再コンパイルされました(単体テストに合格することを含む)。そこで、DESKTOP から TFS にチェックインし、LAPTOP で最新のコードを取得し、そこでもコンパイル (および単体テストに合格) しました。

<!-- Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" / -->
于 2014-01-08T23:20:55.330 に答える