質問

実行可能プログラムをWindows Azureで機能させることを目的として実験をしています。

最初の私はそれをWindows Azureの役割を使ってリモートデスクトップを使って作業しようとしました(Ref http://msdn.microsoft.com/en-us/library/windowsazure/gg443832.aspx )、私は私のexeをリモートデスクトップにコピーし、そしてまたいくつかのDLLをコピーしてから、" regsvr32.exeを使います「これらのDLLを登録するには、問題が発生しました。

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

PS:私は私のexeによって参照されるこれらのDLLを変更することはできません。

役に立ちましたか?

解決

私は、問題がAzure VMにいないためにのみ問題がある可能性があるため、パッケージ(EXE + DLL)を展開する場合は、すべてのコンポーネントとそれらが登録されている必要があります。システム。 RDPを使用してAzure VMにログインでき、展開の仕組みをテストすることができるが、最良のことが最良のことであるが、Web /労働者を介してパッケージを展開することであり、労働者の役割は適しているようです。

あなたはまだexeが機能しなかった理由を見つけるためにさらに掘り下げる必要があり、あなたが図書館やプロセスについてのより多くの詳細を提供するならば、我々は助けても上記の情報は提案を提供するのには非常に役に立ちます。

このような問題を解決するためにあなたがするべきもの:

  1. ZIPファイルを作成し、アプリケーションに必要なすべての参照DLL / EXE、静的ファイルを含める
  2. ワーカーロールを作成し、このzipファイルをコンテンツとして追加し、そのプロパティコピーをTrueに設定します。
  3. あなたのAzureプロジェクトにCMDバッチファイルを追加し、以下のようにすべてのステップを書きます。

    3.1。ファイルをローカルフォルダに解凍します 3.2。 REGSVR32プロセスを使用してすべてのDLLを登録します 3.3。 EXEをProgramEntryPointとしてserveDefinition.csdef に設定します。

    EXEをProgramEntryPointとして使用すると、ワーカーロールホストプロセスが起動して監視すると、設定は以下のようになります。

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

    上記の設定をしたら、AzureパッケージをデプロイしてからRDPをazure VMに展開し、アプリケーションに問題がある場合はテストできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top