csrun从.csx包中丢失可执行文件

时间:2011-07-13 21:21:50

标签: azure azure-worker-roles

我很难看到一个看似简单的Azure程序。

我的练习是创建生成“helloworld.exe”的WorkerRole - 就是这样 - 打印“hello world”并退出。

我正在使用Visual Studio创建项目, 然后将新文件夹添加到项目解决方案“bin2”,我在其中放置了hello.exe 使用菜单选项“添加现有项目”。

然后在ServiceDefinition.csdef中创建了本地存储bin2:  

所以我可以使用RoleEnvironment找到我的可执行文件:

string baseDir = RoleEnvironment.GetLocalResource(“bin2”)。RootPath.Replace('\','/'); string command = Path.Combine(baseDir,@“hello.exe”);

然后运行cspack.exe来创建.csx目录。

生成的.csx包将hello.exe放在正确的位置: WorkerRole1.csx \角色\ WorkerRole1 \为approot \ BIN2 \用hello.exe

然后我用csrun.exe启动了本地开发结构,并从父进程收到bin2 / hello.exe丢失的错误。

我是否需要执行其他操作才能使csrun将hello.exe复制到“bin2”中。 有什么想法吗?

提前谢谢你, Ivgard

1 个答案:

答案 0 :(得分:0)

我很确定我已经回答了这个问题(可能 on the MSDN forum)?但是,您声明的本地资源将为您提供一条完全不同于您放置hello.exe的路径。将文件添加到项目时,它将包含在您的角色的其余代码中。查找本地资源时,您将获得一个可用于写入和读取数据的空目录的路径。这两个是完全独立且不相关的位置。

如果要查找bin2下的hello.exe,只需查找相对路径,或使用%RoleRoot%\ approot \ bin2(或者可能是%RoleRoot%\ approot \ bin \ bin2?)。