0

我正在做一个实验,目的是让可执行程序在 Windows azure 上运行。

首先,我尝试使用具有 Windows azure 角色的远程桌面使其工作(参考http://msdn.microsoft.com/en-us/library/windowsazure/gg443832.aspx),我将我的 exe 复制到远程桌面,并且一些dll,然后我使用“regsvr32.exe”注册这些dll,然后问题来了:“并排配置不正确”。

我知道当它在我自己的计算机上时如何解决这个问题(只需确保正确的依赖项位于“winsxs”目录中),但现在它在使用 Windows azure 角色的远程桌面中,我无权添加正确的依赖项到 winsxs 目录中。所以我来这里寻求帮助,在此先感谢!

PS:我无法更改我的 exe 引用的这些 dll。

4

1 回答 1

0

我想说这个问题可能只是因为一些参考 DLL 不在 Azure VM 中,所以当你部署你的包(EXE + DLL)时,你需要确保你所有的组件都在系统中注册。您可以使用 RDP 登录 Azure VM 并测试您的部署是如何工作的,这当然很好,但是最好的方法是通过 web/worker 部署您的包,并且在您的 can 中,worker 角色似乎很合适。

您仍然需要进一步挖掘以找出 EXE 不起作用的原因,如果您提供有关库和流程的更多详细信息,我们可能会有所帮助,但上述信息很少提供建议。

要解决此类问题,您应该这样做:

  1. 创建一个 zip 文件并包含应用程序所需的所有参考 DLL/EXE、静态文件
  2. 创建一个 Worker 角色并将此 zip 文件添加为内容并将其属性 Copy local 设置为 true。
  3. 将 CMD Batch 文件添加到您的 Azure 项目并编写所有步骤,如下所示:

    3.1。将文件解压缩到本地文件夹 3.2. 使用 Regsvr32 进程 3.3 注册所有 DLL。将您的 exe 作为 ProgramEntryPoint 设置到 ServiceDefinition.csdef

使用您的 EXE 作为 ProgramEntryPoint,工作角色主机进程将启动它并监视它,设置如下所示:

<Runtime executionContext="limited">
 <EntryPoint>
   <ProgramEntryPoint commandLine="your_exe_name.exe" setReadyOnProcessStart="true" />
 </EntryPoint>
</Runtime>

完成上述设置后,您可以部署 Azure 包,然后将 RDP 部署到 Azure VM 并测试您的应用程序是否有任何问题。

于 2012-05-18T16:04:48.337 回答