2015-07-11 164 views
0

我想知道如何使用Visual Studio將文件轉換爲 Azure web實例上的「LocalResource」存儲?我有一個Azure Web項目處理Web服務的部署細節。 (請參閱下面的相關ServiceDefintion.csdef文件片段)如何將Visual Studio中的本地文件添加到Azure LocalResource「文件夾」中?

Web服務的Azure項目已將一些額外文件複製到名爲InstallLogs的LocalResource文件夾中,以確保4.52 .NET運行時安裝在Azure計算機上。然而,不知怎的,爲了支持這些歸檔資源而添加的「bin」文件夾以我不明白的方式與該命名路徑相關。 (我使用Azure doc示例來獲取該部分的工作。)

我無法弄清楚如何將文件資源添加到我添加的第二個LocalResource文件夾中,名爲OpenNLPbins。本地資源正在創建,我可以通過遠程調試獲得一個有效的運行時路徑,但無論我環顧四周,我都無法弄清楚我應該如何在Visual Studio中指定,即一堆本地二進制作爲例子的文件(「EnglishSD.nbin」)在我發佈時會被部署到OpenNLPbins「文件夾」中?

任何想法或幫助表示讚賞?

謝謝, 戴夫Gerding

...從蔚藍的服務csdef ...

<LocalResources> 
<LocalStorage name="InstallLogs" sizeInMB="5" cleanOnRoleRecycle="false" /> 
<LocalStorage name="OpenNLPbins" sizeInMB="150" cleanOnRoleRecycle="false" />  
</LocalResources> 
<Startup> 
<Task commandLine="install.cmd" executionContext="elevated" taskType="simple"> 
<Environment> 
<Variable name="PathToInstallLogs"> 
<RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/LocalResources/LocalResource[@name='InstallLogs']/@path" /> 
</Variable> 
</Environment> 
</Task> 
</Startup> 

回答

2

不能使用本地資源文件夾從Visual Studio中。由於這些是位於實例上的文件夾,所以在部署應用程序之後。

只能使用RoleEnvironment的靜態方法GetLocalResource從代碼中訪問這些文件夾。

什麼,充其量你能做的,就是部署你的文件在Azure Blob Storage。然後使用RoleEntryPointOnStart方法將文件下載到本地資源文件夾中。或者使用startup task這樣做。

best practices for Stratup tasks上有很好的教程,其中包括how to use local resource在啓動任務中的參考。

作爲最後的手段,我從不建議這樣做,您可以將這些文件包含在項目中,標記爲「內容」和「始終複製到輸出文件夾」,並且您可以使用RoleEntryPoint類來複制這些文件您的實例啓動之前的文件(OnStart)。

如果可能的話,我總是希望將文件存儲在Blob存儲中並從那裏下載。

相關問題