在VS2005 / Biztalk 2006中自动将引用的程序集部署为“资源”

时间:2009-03-25 21:38:32

标签: visual-studio-2005 biztalk biztalk-deployment

我有一个双项目解决方案 - 一个项目包含我的模式和BizTalk业务流程,另一个项目包含从我的业务流程中引用的DLL并执行实际工作(它是共享代码,因此我无法合并它进入BizTalk程序集)。第二个程序集作为BizTalk的参考添加,我可以毫不费力地从编排中引用#2中的方法。

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

如何将此程序集标记为必须使用我的BizTalk程序集部署的内容?我只是错过了某个地方的参考设置吗?

2 个答案:

答案 0 :(得分: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,你需要导入它! 这解决了您的问题。

答案 1 :(得分:0)

我不相信自动向BizTalk应用程序添加资源有一个解决方案。

我通常使用脚本部署到BizTalk,所以我添加资源作为其中一部分(但是,公平地说,我通常有两个以上的程序集); BTSTask是您可以使用的BizTalk命令行实用程序(或者,如果您使用MSBuild,则可以使用“SDC tasks