【问题标题】:Could not load file or assembly when trying to remove/delete Resource/Application尝试删除/删除资源/应用程序时无法加载文件或程序集
【发布时间】:2012-10-20 06:41:16
【问题描述】:

我有一个 Biztalk 应用程序,它基本上是其他应用程序正在使用的模式的外壳。我现在想删除此应用程序,但无法从 BizTalk Server 管理控制台中删除,当我右键单击 --> 删除时,我收到一个错误提示

Could not load file or assembly <assembly_name>.dll or one of its dependencies. The system cannot find the path specified (mscorlib)

接着是:

The system cannot find the path specified (Exception from HRESULT: 0x80070003)

所以我从应用程序中删除程序集并得到完全相同的错误。我删除了其他 biztalk 资源中对它的所有引用,但在尝试删除应用程序或资源时仍然出现相同的错误。我确实注意到在引用程序集的 Modify Resouces 对话框中,这个恶意程序集被列为 Not Found 的依赖项状态。

奇怪的是,当消息通过时,依赖于恶意程序集的资源仍然可以正常工作并且没有引发错误(尽管它们使用显示为 Not Found 的程序集组件)。

我已确保检查 GAC 并将程序集加载到其中。

所以现在我不得不问:

  1. Biztalk 实际上在哪里寻找这个程序集?
  2. 有什么方法可以强制删除此应用程序?
  3. 当我试图删除程序集时,为什么它会关心是否找不到程序集?
  4. 为什么它显示为未找到,但仍然有效?

谢谢。

【问题讨论】:

  • This blog 可能会有所帮助。此外,如果您还没有这样做(即没有远程连接),您可以尝试直接在您的一台主机上运行 BTS 管理控制台。
  • BTS 管理控制台直接在我正在开发的开发框中运行。我能够通过更新程序集的版本并重新部署,然后将原始程序集移动到不同的应用程序来解决问题。但我仍然无法从 biztalk 管理控制台中删除程序集。我什至尝试了一些 3rd 方工具(我相信是 BTZap)却得到了同样的错误。

标签: assemblies biztalk


【解决方案1】:

我认为关键是“或其依赖项之一”。如果它是一个依赖项,它可能正在使用标准的 windows 机制来查找 dll。它会在当前目录和 windows 目录中搜索它们。

“Biztalk 实际上在哪里寻找这个程序集?”

在 biztalk 管理控制台中查看应用程序的“资源”部分。它显示了一个包含程序集位置的列。

【讨论】:

  • 我遇到过这种情况。我的解决方案是构建一个具有相同名称和标识符的新程序集,部署它以替换缺少部件的程序集,然后将其删除。
【解决方案2】:

我会停止所有主机实例/编排,然后从 GAC 中卸载所有内容 - 如果消息实际上仍在通过,那么仍在加载使用您的架构的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    相关资源
    最近更新 更多