1

TFS のループで 2 つのソリューションを構築していますが、両方に同じテスト DLL があります (最初のソリューションでは 2.0 を対象とし、2 番目のソリューションでは 3.5 を対象としています)。最初のパスではすべて問題ありませんが、2 番目のパスでは次のようになります。

API の制限: アセンブリ 'file:///D:\Builds\1\Project\Main\Binaries\FF3.5\Potato.dll' は、別の場所から既に読み込まれています。同じ appdomain 内の新しい場所からロードすることはできません。

この問題を回避するにはどうすればよいですか? DLL を強制的にアンロードできますか? アプリドメインについて何かできることはありますか?

ありがとう、

4

1 に答える 1

1

このソリューションを試すことができます。すべてのテスト DLL を検索する式を変更するだけですhttp://geekswithblogs.net/jakob/archive/2010/06/08/tfs-2010-build-dealing-with-the-api-制限エラー.aspx

編集:

これをさらに調査したところ、Test Assembly Filespec (2. Basic -> Automated Tests -> Test Assembly -> Test Assembly Filespec on the default template) が FindMatchingFiles アクティビティを使用しているようです。そのため、ロードする必要があると思われるファイルのみに一致するパターンを作成する必要があります。パターンを使用するためのガイドが見つかりませんでしたが、次のようなものは機能します:

  1. _PublishedWebsites***test*.dll (フォルダー _PublishedWebsites 内の名前に単語 test を含むすべての dll を見つけます)
  2. test .dll (ベース フォルダー内の単語 test を名前に含むすべての dll を検索します)
  3. * *test .dll (基本フォルダーの下のすべてのフォルダーで、名前に単語 test が含まれるすべての dll を検索します)

このようなものはそうではありません:

  1. _PublishedWebsites**\bin*test*.dll
  2. * \bin* test.dll
  3. _PublishedWebsites*test****test*.dll
于 2013-02-04T09:39:44.993 に答える