1

我有一个 WCF 服务,我最近从 .NET 3.5/TFS2008 升级到了 .NET 4.0/TFS2010。在过去的几天里,我一直在调试团队构建错误,但我不太明白为什么我会收到错误。我遇到过两次错误。

  1. 编译 Web 部署项目时

C:\Program Files (x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.targets (1728):无法从程序集中加载“Microsoft.Sdc.Tasks.BizTalk2004.Host.Delete”任务C:\Program Files (x86)\MSBuild\Microsoft.Sdc.Tasks\Microsoft.Sdc.Tasks.BizTalk.dll。无法加载文件或程序集“Microsoft.BizTalk.ExplorerOM,版本=3.0.1.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。

  1. 编译 WiX 项目时

C:\Builds\24\DCFServices2010\Release 4.0\Sources\Bin\wix3-binaries\Wix.targets (1600):无法从程序集 C 加载“Microsoft.Sdc.Tasks.BizTalk2004.Host.Delete”任务:\Program Files (x86)\MSBuild\Microsoft.Sdc.Tasks\Microsoft.Sdc.Tasks.BizTalk.dll。无法加载文件或程序集“Microsoft.BizTalk.ExplorerOM,版本=3.0.1.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。

在案例 1 中,我已经通过恢复到 WebDeployment v9.0 来“修复”它 - 然而,这并不是真正的修复。如果出现错误 2,我还没有找到解决方案,我真的可以使用一些帮助!

事实:

  1. 我使用 Microsoft.Sdc.Tasks 并且尝试了不同的版本 - 结果相同。
  2. 我不使用任何 BizTalk 相关库或有任何 BizTalk 相关代码
  3. 这是一个 VS2010、.NET 4.0 项目,该项目在 TFS2010 构建代理上编译。

有任何想法吗?

4

1 回答 1

1

问题是命名空间冲突,因为您有更多可用的“删除”任务。 此链接显示了一种解决方法。我确信有更好的方法,但由于您不需要 BizTalk,这似乎是一个快速而简单的答案:)

基本上你注释掉 BizTalk 任务。

您转到此文件夹(从上面的错误消息中): C:\Program Files (x86)\MSBuild\Microsoft.Sdc.Tasks\

并编辑此文件:Microsoft.Sdc.Common.tasks

注释掉或删除 BizTalk 的任务。这些行都开始看起来像:

<UsingTask AssemblyFile="$(TasksPath)Microsoft.Sdc.Tasks.BizTalk.dll"

并且位于文件的底部。

于 2011-11-21T22:40:17.087 回答