2

Azureワーカーの役割に実行可能ファイルを追加し、コードから呼び出しようとしました。しかし、パスがどのように見えるかは100%わかりません。Visual Studioの実行可能ファイルをワーカーロールプロジェクトに追加し、コンテンツに設定して常にコピーしました。私の労働者の役割では、私は電話します

Process.Start(Path.Combine(Environment.GetEnvironmentVariable("RoleRoot"), "Executable.exe"));

その結果

AppDomain Unhandled Exception例外:システムは、System.Threading.ThreadHelper.ThreadStart()のSystem.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)[...]で指定されたファイルを見つけることができません。

私の紺碧のプロジェクトの名前は「AzureProject」、私のワーカーロールの名前は「QueueWorker」、実行可能ファイル「Executable.exe」です。パスが間違っていると思います。

4

1 に答える 1

5

パスに何か問題があります、あなたは正しいです。確認したいことがいくつかあります。

  • プロジェクトの一部である実行可能ファイルの「出力にコピー」プロパティは、「 alywasをコピー」に設定する必要があります
  • path.combineのRoleRootの後、「Executable.exe」の前に@"\approot"を追加してみてください。
  • Assembly.GetExecutingAssembly()。Locationから実行可能ファイルの場所を取得することもできます。これにより、実行可能ファイルも存在する必要があるワーカーロールのアセンブリへのパスが提供されます。WebRoleでそのアプローチを使用しないでください。そこでは、意味が異なります(一時的なasp.netファイル)。
于 2011-11-24T11:07:09.027 に答える