我很难看到一个看似简单的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
答案 0 :(得分:0)
我很确定我已经回答了这个问题(可能 on the MSDN forum)?但是,您声明的本地资源将为您提供一条完全不同于您放置hello.exe的路径。将文件添加到项目时,它将包含在您的角色的其余代码中。查找本地资源时,您将获得一个可用于写入和读取数据的空目录的路径。这两个是完全独立且不相关的位置。
如果要查找bin2下的hello.exe,只需查找相对路径,或使用%RoleRoot%\ approot \ bin2(或者可能是%RoleRoot%\ approot \ bin \ bin2?)。