0

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

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

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

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

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

string baseDir = RoleEnvironment.GetLocalResource("bin2").RootPath.Replace('\', '/'); 字符串命令 = Path.Combine(baseDir, @"hello.exe");

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

生成的 .csx 包在正确的位置获得了 hello.exe:WorkerRole1.csx\roles\WorkerRole1\approot\bin2\hello.exe

然后我使用 csrun.exe 启动本地开发结构,并从缺少 bin2/hello.exe 的父进程中获取错误。

我是否需要做其他事情才能让 csrun 将 hello.exe 复制到“bin2”中。有任何想法吗?

提前谢谢你,艾夫加德

4

1 回答 1

0

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

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

于 2011-07-13T22:20:54.987 回答