在Azure辅助角色中启动可执行文件:路径问题

ala*_*eno 2 .net azure azure-worker-roles

我尝试向Azure工作者角色添加可执行文件,并从代码中调用它.但我不是百分之百确定路径的样子.我将Visual Studio中的可执行文件添加到我的worker角色项目中,设置为content并始终复制.在我的工作角色中,我打电话

Process.Start(Path.Combine(Environment.GetEnvironmentVariable("RoleRoot"), "Executable.exe"));
Run Code Online (Sandbox Code Playgroud)

结果如何

AppDomain未处理的异常异常:系统无法在System.Threading.ThreadHelper.ThreadStart()中找到System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)[...]中指定的文件.

我的azure项目的名称是"AzureProject",我的worker角色的名称是"QueueWorker",可执行文件"Executable.exe".我想这条路是错的.

ast*_*kov 5

路径有问题,你是对的.以下是您可能想要检查的几件事:

  • 作为项目一部分的可执行文件的" 复制到输出 "属性必须设置为" 复制alywas "
  • 尝试在RoleRoot之后和path.combine中的"Executable.exe"之前添加@"\ approot".
  • 您也可以尝试从Assembly.GetExecutingAssembly()获取可执行文件位置.这将为您提供工作者角色程序集的路径,您的可执行文件也应驻留在该路径中.只是不使用WebRole的那种方法,它有不同的含义(临时的asp.net文件).