1

我正在尝试创建 BizTalk 应用程序 ( ) 并使用命令行实用程序App1添加资源。BTSTask一些App1BizTalk 程序集依赖于一些SharedAppBizTalk 程序集。我SharedApp使用将程序集添加到 GACgacutil并验证它们存在于 GAC 中。当我运行时,对于依赖于任何程序集BTSTask AddResource的任何 BizTalk 程序集,该命令都会失败。App1SharedApp

SharedApp错误消息告诉我找不到特定的dll 以供参考。我已验证程序集上的详细信息(名称、版本等)SharedApp是否正确;它是正确的程序集并且存在于 GAC 中。

BizTalk 不应该能够SharedApp在 GAC 中检测到这些程序集并允许它们在我调用时用作参考程序集AddResource吗?

SharedApp关于为什么将程序集添加到 GAC 没有解决我的问题的任何想法?

编辑:添加命令行示例文本

BTSTask.exe AddApp -ApplicationName:App1 -Server:BTServer1 -Database:BTDatabase1 -Description:App1_instance
BTSTask.exe AddResource -ApplicationName:App1 -Source:"path_to_App1.Assembly.dll" -Destination:"destination_path_for_App1.Assembly.dll" -Type:BizTalkAssembly -Options:GacOnAdd,GacOnInstall -Overwrite -Server:BTServer1 -Database:BTDatabase1
4

2 回答 2

0

这是 BizTalk 2010 吗?在这种情况下,它可能与 .NET 4.0 引入的“双缓存”有关。您可能知道,现在有 2 个全局程序集缓存,来自 2.0 GAC 的程序集不能使用 4.0 GAC 程序集。
因此,也许您的 SharedApp 位于 .NET4.0 缓存中,而您要添加的资源是针对旧版本的 BizTalk 编译的?

只是大声思考,你永远不知道它是否有帮助。干杯

于 2013-04-12T08:09:57.330 回答
0

在深入了解我们的自动化并启用详细日志之后,我能够得到更清晰的错误消息:

Error: Assembly "App1.Assembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxx" references the following assemblies that must be deployed before deploying this assembly: Assembly "SharedApp.Services, Version=1.0.0.0, Culture=neutral, PublicKeyToken=yyyyyyyyyyyyyyyy"

在在线搜索该错误后,我从讨论帖子中发现了以下内容:

如果 [a] DLL 包含 XSD (BizTalk) 架构,它也必须部署到 BizTalk 管理数据库。

显然,除了将程序集添加到 GAC 之外,还必须这样做。这就是为什么将App1程序集添加到我的应用程序会失败的原因;虽然我将SharedAppBizTalk 程序集添加到 GAC,但 BizTalk 管理数据库中也需要它们。

感谢那些关注这个问题的人。

于 2013-04-16T20:19:01.170 回答