我想知道如何使用Visual Studio将文件放入Azure Web实例上的“ LocalResource”存储中?我有一个Azure Web项目正在处理Web服务的部署细节。(请参阅下面的相关ServiceDefintion.csdef文件片段)
该Web服务的Azure项目已经将几个额外的文件复制到一个名为InstallLogs的LocalResource文件夹中,以确保在Azure计算机上安装了4.52 .NET运行时。但是,以某种我不理解的方式,添加以支持这些文件资源的“ bin”文件夹以某种方式与该命名路径相关联。(我使用Azure文档示例来使该部分正常工作。)
我不知道如何将文件资源添加到我添加的第二个LocalResource文件夹中,该文件夹称为OpenNLPbins。正在创建LocalResource,并且可以通过远程调试获取到运行时的有效路径,但是无论环顾多久,我都无法弄清楚应该如何在Visual Studio中指定一堆本地二进制文件(以“ EnglishSD.nbin”为例,当我发布时将其部署到OpenNLPbins的“文件夹”中吗?
任何想法或帮助表示赞赏吗?
谢谢,戴夫·格丁
...来自天蓝色服务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>
您不能在Visual Studio中使用本地资源文件夹。因为这些是实例上的文件夹,所以在部署应用程序之后。
您只能使用RoleEnvironment
的静态方法GetLocalResource从代码中访问这些文件夹。
尽力而为,是将文件部署到Azure Blob存储中。然后,可以使用RoleEntryPoint
的OnStart方法将文件下载到本地资源文件夹中。或使用启动任务来执行此操作。
关于Stratup任务的最佳实践,有很好的教程,其中包括有关如何在启动任务中使用本地资源的参考。
作为最后的选择,我从不建议这样做,您可以在项目中包含这些文件,将它们标记为“内容”和“始终复制到输出文件夹”,并且可以使用RoleEntryPoint类在实例之前复制这些文件。启动(OnStart)。
我总是会尽可能地将文件放在Blob存储中,然后从那里下载。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句