2011-07-13 51 views
0

我看起來很簡單的Azure程序很難。csrun從.csx包丟失可執行文件

我的練習是創建WorkerRole,它產生「helloworld.exe」 - 這樣做 - 打印「hello world」並退出。

我使用Visual Studio來創建一個項目, 然後加入新的文件夾項目解決方案「BIN2」,我把用hello.exe 使用菜單選項「添加現有項」。

然後ServiceDefinition.csdef中創建的本地存儲BIN2:

這樣我就可以找到我的可執行文件RoleEnvironment:

串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

我敢肯定,我回答了這個問題已經( 可能 on the MSDN forum)?但是你聲明的本地資源會給你一個完全不同於你放置hello.exe的路徑。將文件添加到項目中時,它將包含在角色的其餘代碼中。當你查找本地資源時,你會得到一個可用於寫入和讀取數據的空目錄的路徑。這兩個是完全獨立和無關的地點。

如果你想找到bin2下的hello.exe,只要查找相對路徑,或者使用%RoleRoot%\ approot \ bin2(或者是%RoleRoot%\ approot \ bin \ bin2?)。

+0

Environment.ExpandEnvironmentVariables(「%RoleRoot%/ approot」); – Ivgard

+0

Steve,謝謝你的工作! – Ivgard