4

私は、visualstudio.com のトライアル メンバーシップを最大限に活用しようと考えました。いくつかのプロジェクトでソリューションを作成し、それを Microsoft git ソース管理プロバイダーにプッシュし、ビルド定義を構成して、プロジェクト サーバーでビルドしようとしました。しかし、それは私に言って失敗し続けます:

タイプまたは名前空間名「Moq」が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

これは、ビルド サーバーが Moq.dll ライブラリを見つけられないことを意味します。NuGet を使用してインストールしましたが、.gitignore を構成して、packages フォルダーをソース管理から除外しました。また、ソリューションの NuGet パッケージの復元を有効にし、nuget.exe、nuget.targets、および nuget.config (.nuget フォルダー内の 3 つのファイルすべて) を他のすべてのプロジェクト ファイルと共にプッシュしました。

これで、packages フォルダーもプッシュした場合にビルドを機能させることができると確信していますが、nuget packages フォルダーをソース管理から除外したいと考えています。だから私は疑問に思っています、これは可能ですか?visualstudio.com のドキュメントでは、ビルド サーバーに Visual Studio 2013 がインストールされていると書かれています。このため、nuget パッケージの復元が機能して不足している dll をダウンロードし、MSBuild で解決できると想定しています。これは正しいですか?または、visualstudio.com で自動化された CI ビルドを使用するには、パッケージをソース管理下に置く必要がありますか?

ログ ファイルによると、nuget パッケージの復元によってパッケージがダウンロードされました。何を与える?

プロジェクト "C:\a\src\MySln.sln" (1) は、ノード 1 (デフォルトターゲット)。RestorePackages:
"C:\a\src.nuget\NuGet.exe" install "C:\a\src\Tests\MySln.ProjA.UnitTests\packages.config" -source "" -NonInteractive -RequireConsent -solutionDir "C: \a\src\ " NuGet パッケージを復元しています... ビルド中に NuGet がパッケージをダウンロードしないようにするには、Visual Studio の [オプション] ダイアログを開き、[パッケージ マネージャー] ノードをクリックして、[不足しているパッケージのダウンロードを NuGet に許可する] のチェックを外します。
packages.config にリストされているすべてのパッケージは、既にインストールされています。PrepareForBuild: ディレクトリ "obj\Debug\" を作成しています。ResolveAssemblyReferences: プライマリ リファレンス「Moq」。C:\Program Files (x86)\MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets(1635,5): 警告 MSB3245: この参照を解決できませんでした。アセンブリ「Moq」が見つかりませんでした。アセンブリがディスク上に存在することを確認してください。コードでこの参照が必要な場合、コンパイル エラーが発生する可能性があります。[C:\a\src\Tests\MySln.ProjA.UnitTests\MySln.ProjA.UnitTests.csproj]

この行は、上記の下のビルド ログ ファイルにもあります。

「..\packages\Moq.4.1.1311.0615\lib\net40\Moq.dll」と考えましたが、存在しませんでした。

4

2 に答える 2

3

これと同じエラーが発生しましたが、ビルド サーバーで発生していました。NuGet経由でMoqを追加し、プロジェクトをチェックインしましたが、すべて問題ありませんでした。次に、プロジェクトを TFS の新しいフォルダーに移動しましたが、ビルド サーバーは Moq を見つけることができなかったようです。それは地元で素晴らしい建物でした。すべての変更がソース管理にチェックインされていることを確認してから、ローカルのソース コード ディレクトリを削除することで、問題を解決しました。私は最新のものになり、テストプロジェクトはMoqの新しいコピーが必要であることを認識しました。私は、TFS/ソース セーフまたは Visual Studio 統合モジュールが、ある時点でソース管理に追加されなかったことを非難します。

于 2014-06-17T18:12:37.377 に答える