将依赖性应用程序部署到Azure Cloud



我正在尝试部署com dll中引用的c#app。我知道Azure Cloud VM是X64,所以我引用的com lib也是x64。我添加了.cmd文件,并将其链接在ServiceDefinition中。看起来它是执行的,因为如果我删除.cmd文件,我会遇到丢失它的错误。我不确定一件事:我应该注册哪个库?我的意思是我有一个somecom.dll。我正在我的C#项目中引用它,并且在我的参考列表中获取Somecomlib.dll。但是我的项目不包含任何somecomlib.dll。它包含Interop.somecomlib.dll所以我尝试注册原始somecom.dll,但我会遇到错误

Retrieving the COM class factory for component with CLSID {D1F73A20-01A1-431B-A135-2D2A89A3D2B3} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

,如果我做的一切正确

  1. somecom.dll取决于其他液体,因此我将它们添加到我的项目文件夹中,并使用somecom.dll。这是最有问题的,因为所有人在我的机器上都没有工作,没有任何其他工作。那是因为这是第三方解决方案,所以我认为他们的安装人员完成了所有工作。
  2. 我将.cmd保存在记事本中,默认情况下它保存在UTF-8中。因此,当我尝试执行此CMD时,我在命令之间得到了一些奇怪的符号,因此失败了。

总结一下面对这个问题并且具有零级别的人的建议。主题知识:

  1. .cmd中的删除/s标志,并从您的命令行中执行AMDANE权利。不要忘记在部署时返回/s标志。
  2. 部署后,您将在错误页面上看到您的问题.dll GUID。只需访问Yout主机地址(在Web.config中使用<customErrors mode="Off">(
  3. 打开regedit并找到问题的指南.dll。可能有一些有用的信息。

最新更新