0

Windows azure で実行可能プログラムを動作させる目的で実験を行っています。

最初に、Windows azure の役割を持つリモート デスクトップを使用して動作させようとしました (参照http://msdn.microsoft.com/en-us/library/windowsazure/gg443832.aspx )。exe をリモート デスクトップにコピーし、さらに「regsvr32.exe」を使用してこれらのdllを登録すると、「サイドバイサイド構成が正しくありません」という問題が発生しました。

自分のコンピューターにあるときにこの問題を解決する方法は知っていますが (適切な依存関係が "winsxs" ディレクトリにあることを確認してください)、現在は Windows azure ロールを使用してリモート デスクトップにあり、追加する権限がありません。正しい依存関係を winsxs ディレクトリに追加します。ここで私は助けを求めるようになりました、事前に感謝します!

PS: exe が参照するこれらの dll を変更できません。

4

1 に答える 1

0

問題は、参照 DLL のいくつかが Azure VM にないためにのみ発生する可能性があるため、パッケージ (EXE + DLL) を展開するときに、すべてのコンポーネントがシステムに登録されていることを確認する必要があります。RDP を使用して Azure VM にログインし、展開がどのように機能するかをテストできることは確かに良いことですが、Web/worker を介してパッケージを展開し、worker ロールが適していると思われる場合に最適です。

EXE が機能しなかった理由を調べるには、さらに掘り下げる必要があります。ライブラリとプロセスに関する詳細を提供していただければ、参考になるかもしれませんが、上記の情報は提案を提供するものではありません。

このような問題を解決するには、次のことを行う必要があります。

  1. zip ファイルを作成し、アプリケーションに必要な参照 DLL/EXE、静的ファイルをすべて含めます
  2. Worker ロールを作成し、この zip ファイルをコンテンツとして追加し、そのプロパティ Copy local を true に設定します。
  3. CMD バッチ ファイルを 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 に答える