0

我有一个 VS2010 TFS 构建服务器,配置了构建定义集以进行连续配置。

对于我的 BizTalk 2010 解决方案,我有 200 多个测试。这些测试在我的开发盒上运行正常,但在构建服务器上,对于处理平面文件的测试,我收到错误“无法找到 Microsoft.BizTalk.Tom.resources”。我的猜测是这是一个包含在Microsoft.BizTalk.TOM.dll程序集中的资源文件,尽管我使用了反射器并且看不到资源。

事实证明 Microsoft.BizTalk.TOM.dll 是一个 .Net 2 dll,它与 BizTalk 一起安装到以下文件夹中:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies

我已经检查了构建服务器并确认该程序集存在于上述文件夹中。

根据围绕同一问题的 3 篇不同的博客文章,我尝试了以下方法:

  1. 包括对 dll 的引用并将 copylocal 设置为 true
  2. 将程序集添加到 .Net 2 GAC
  3. 从“测试设置”对话框/“部署”选项卡将程序集添加到“要部署的其他文件”列表中
  4. 从“测试设置”对话框/“单元测试”选项卡将程序集添加到“运行测试时使用的文件夹”列表

测试失败后,我检查 \TestResults\Out 文件夹。我可以看到这里复制了 Microsoft.BizTalk.TOM.dll。

当我检查开发服务器上的等效文件夹时,我看不到构建服务器上不存在的任何文件。

有什么想法我可以尝试下一步吗?

4

1 回答 1

2

我在文件夹中找到了 Microsoft.BizTalk.Tom.dll 的副本:C:\Users\tfs_service\AppData\Local\assembly\dl3\randomname\

经过研究,原来这是存储“影子副本”程序集的位置: 什么是缓存 AppData\Local\assembly\dl3?

我想知道为什么要制作卷影副本以及如何防止它,我想在我的情况下应用程序域是 MsTest?

我删除了卷影副本并从 GAC 中卸载,因此我只剩下以下文件夹中的副本:

  • C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies
  • C:\Program Files (x86)\Common Files\Microsoft BizTalk

删除卷影副本并重新启动服务器后,测试现在可以成功运行。

于 2012-11-26T10:23:01.653 回答