2017-05-24 54 views
5

私はユニットテストのためにFakesライブラリを使用するプロジェクトの自動ビルドとユニットテストを設定しようとしています。私のWindows 10 PC(VS 2017 Enterpriseがインストールされています)でプロジェクトが正常に構築され、テストされますが、同じコマンドを使用してビルドサーバー(VS 2017 EnterpriseのWindows 10)でプロジェクトをコンパイルするとFakeについてのいくつかのエラーが発生します。正確なエラーは次のようになります。これは、MSBuildのの古いバージョンを使用することによって引き起こされ、私の研究から、MSBuild 15 - タイプまたは名前空間 'Fakes'がネームスペースに存在しません

XControllerTests.cs(10,20): error CS0234: The type or namespace 'Fakes' does not exist in the namespace 'System.Data.Common' (are you missing an assembly reference?) [C:\Runner\builds\xxx\XTests.csproj]

、しかし私は、サーバーをチェックし、それは、Visual Studioの最新バージョン&の更新プログラムを持って確認していますインストールされます。また、ビルドスクリプトが正しいバージョンのMSBuild.exe(c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe)を使用していることも確認しました。デスクトップ上でこのバージョンを使用すると、プロジェクトが正しくコンパイルされます。

なぜビルドは(同じセットアップ)ビルドサーバーで動作しないのですか?

+0

私は同じproblémを持っていますが、MSビルドツール2017をビルドサーバーで使用しています。 msbuildへのパスは、c:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Binです。 – McMlok

答えて

4

私はいくつかの回避策がありますが、それは優雅ではありません。

Fakesフォルダがある場合は、パスC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0を確認する必要があります。そうでない場合は、TestToolsワークロードをインストールするか、別のマシンからコピーする必要があります。

次に、ファイルMicrosoft.QualityTools.Testing.Fakes.ImportAfter.targetsが他のマシンからコピーされていない場合はC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Microsoft.Common.Targets\ImportAfterをチェックする必要があります。このファイルには、プロセスを構築するための偽のターゲットを組み込むためのコードがあります。

最後に、アセンブリMicrosoft.QualityTools.Testing.Fakes.dllがGACまたはMSBuildがそれを見つける別の場所にあるかどうかを確認する必要があります。

これは私がMSビルドツール2017でビルドしたマシンで行いましたが、現在は偽のアセンブリをビルドしています。

+0

ありがとう!しかし、その道筋はビルドツールマシンでは分かりづらい。私の答えも追加されました。 – zionyx

4

上記の@McMlokの答えを拡張するために、私が行ったことを含めます。

  • 出典:私の地元のVS2017プレミアムアップデート1のdevのマシン。
  • 対象:VS2017ビルドツールVM。

コピー偽物フォルダ:ターゲットにc:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\

  • :ソースから

    • c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\

    コピーMicrosoft.QualityTools.Testing.Fakes.ImportAfter.targetsファイル:

    ターゲットにc:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Microsoft.Common.targets\ImportAfter\
  • c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Microsoft.Common.Targets\ImportAfter\
  • コピーをMicrosoft.QualityTools.Testing.Fakesソースから10

    • 。DLLファイル:

      • ソースから:ターゲットにc:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PublicAssemblies\
      • GAC/%windir%\Microsoft.NET\assembly

      は今も元気構築します。ありがとうMcMlok。

    関連する問題