0

我有一个包含两个项目的解决方案 - 一个项目包含我的架构和 BizTalk 编排,另一个项目包含一个从我的编排中引用并执行实际工作的 DLL(它是共享代码,所以我不可能将它合并到BizTalk 程序集)。第二个程序集是作为 BizTalk 的引用添加的,我可以毫无问题地从编排中引用 #2 中的方法。

但是,当我从 VS -> BizTalk 部署时,它不会带上我的资源程序集 - 它只是部署 BizTalk 程序集。如果我尝试触发我的编排,我会收到无法加载引用的程序集的错误,但是一旦我将它添加到 GAC 和我的 BizTalk 应用程序的“资源”列表中,事情就会完美运行。

如何将此程序集标记为必须与我的 BizTalk 程序集一起部署的东西?我只是在某处缺少参考设置吗?

4

2 回答 2

1

将以下语句放在批处理文件中并从 VS 命令提示符运行它

BTSTask AddResource -Source:.\Assemblies\Schemas.DLL 
  -ApplicationName:MyApp -Type:System.BizTalk:BizTalkAssembly 
  -Options:GacOnImport,GacOnInstall -Overwrite
BTSTask AddResource -Source:.\Assemblies\Orchestrations.DLL 
  -ApplicationName:MyApp -Type:System.BizTalk:BizTalkAssembly 
  -Options:GacOnImport,GacOnInstall -Overwrite
BTSTask AddResource -Source:.\Assemblies\SharedLib.DLL 
  -ApplicationName:MyApp -Type:System.BizTalk:Assembly 
  -Options:GacOnImport,GacOnInstall -Overwrite
BTSTask ExportApp -ApplicationName:MyApp -Package:MyApp.msi

最后你会得到一个 MSI,你需要导入它!这解决了你的问题。

于 2009-03-27T23:00:39.277 回答
0

我不相信自动将资源添加到 BizTalk 应用程序的解决方案。

我通常使用脚本部署到 BizTalk,因此我添加了资源作为其中的一部分(但是,公平地说,我通常有超过 2 个程序集);BTSTask 是 BizTalk 命令行实用程序,您可以使用它来执行此操作(或者,如果您使用的是 MSBuild,您可以使用“ SDC 任务

于 2009-03-26T14:13:36.677 回答