1

我在 TFS 的一个循环中构建了 2 个解决方案,并且在这两个解决方案中我都有相同的测试 DLL(针对第一个解决方案中的 2.0 和第二个解决方案中的 3.5)。第一遍一切都很好,但在第二遍,我明白了:

API 限制:程序集 'file:///D:\Builds\1\Project\Main\Binaries\FF3.5\Potato.dll' 已从其他位置加载。它不能从同一 appdomain 中的新位置加载。

我该如何解决这个问题,我可以强制卸载 DLL 吗?我可以对 appdomain 做点什么吗?

谢谢,

4

1 回答 1

1

您可以尝试此解决方案,它只涉及更改查找所有测试 dll 的表达式http://geekswithblogs.net/jakob/archive/2010/06/08/tfs-2010-build-dealing-with-the-api-限制错误.aspx

编辑:

我对此进行了进一步调查,似乎测试程序集文件规范(2. 基本 -> 自动测试 -> 测试程序集 -> 默认模板上的测试程序集文件规范)正在使用 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*测试.dll
  3. _PublishedWebsites*test****test*.dll
于 2013-02-04T09:39:44.993 回答