【问题标题】:Automatically deploy referenced assembly as "Resource" in VS2005/Biztalk 2006在 VS2005/Biztalk 2006 中自动将引用的程序集部署为“资源”
【发布时间】:2009-03-25 21:38:32
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案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,你需要导入它! 这解决了您的问题。

    【讨论】:

    • 我的问题是这些文件默认情况下不包含在我的部署中 - 当我部署时,我希望也部署任何必需的程序集,以便应用程序准备好运行,而事实并非如此。哦,好吧 - 谢谢你的回答。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多