2011-11-24 74 views
2

我試圖向Azure輔助角色添加可執行文件並從代碼調用它。但我不能100%確定路徑的樣子。 我在Visual Studio中將可執行文件添加到我的工作者角色項目中,設置爲內容並始終複製。 在我的輔助角色,我叫在Azure輔助角色中啓動可執行文件:路徑問題

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

導致

AppDomain中未處理的異常異常:系統無法找到 System.Diagnostics.Process.StartWithShellExecuteEx(的ProcessStartInfo 的StartInfo指定的 文件)[...]在System.Threading.ThreadHelper.ThreadStart()

我的天藍色項目的名稱是「AzureProject」,我的工作角色的名稱是「QueueWorker」,可執行文件「Executable.exe」。我想路徑是錯誤的。

回答

5

路徑有問題,你是對的。這裏有幾件事情,你可能要檢查:

  • 複製到輸出」的可執行文件的屬性,這是你的項目的一部分,必須設置爲「複製alywas
  • 嘗試在您的path.combine中的RoleRoot之後和「Executable.exe」之前添加@「\ approot」。
  • 您也可以嘗試從Assembly.GetExecutingAssembly()獲取可執行文件的位置。位置 - 這將爲您提供組裝工作者角色的路徑,您的可執行文件應駐留在該路徑中。只是不使用WebRole的方法,它有不同的含義(臨時的asp.net文件)。
+1

謝謝,它適用於Process.Start(Path.Combine(「RoleRoot」)+ @「\」,@「approot \ Executable.exe」)); – alapeno