我正在创建一个azure webjob(控制台应用程序),我需要获取可执行文件的当前路径.
完整的代码在这里:
public static void ActivateFeatures(ClientContext cc)
{
XMLFileSystemTemplateProvider provider = new XMLFileSystemTemplateProvider(@"C:\Users\Esteban\Documents\visual studio 2013\Projects\ConsoleApplication1\ConsoleApplication1\Template", "");
//XMLFileSystemTemplateProvider provider = new XMLFileSystemTemplateProvider(AppDomain.CurrentDomain.BaseDirectory + @"\\Template\\", "");
//XMLFileSystemTemplateProvider provider = new XMLFileSystemTemplateProvider(Path.Combine(Environment.GetEnvironmentVariable("WEBROOT_PATH"), "Template"), "");
string templateName = "features.xml";
// Load the template
ProvisioningTemplate p2 = provider.GetTemplate(templateName);
// Apply template to existing site
try
{
cc.Web.ApplyProvisioningTemplate(p2);
}
catch (Exception ex)
{
System.Diagnostics.Trace.TraceError(ex.Message);
}
System.Diagnostics.Trace.TraceInformation("App installed finished");
}
Run Code Online (Sandbox Code Playgroud)
我的一个朋友告诉我这条线可以在azure上工作,但是当我在本地测试它时它不起作用
XMLFileSystemTemplateProvider provider = new XMLFileSystemTemplateProvider(Path.Combine(Environment.GetEnvironmentVariable("WEBROOT_PATH"), "Template"), "");
Run Code Online (Sandbox Code Playgroud)
当我使用第二行时,我得到一个值不能为空的异常.
http://screencast.com/t/4tj8YelW
我只需要一行:1.我不需要硬编码2.它应该在本地工作,但也可以部署到Azure.
您可以使用以下环境变量:
WEBJOBS_PATH - 当前运行的WebJob的临时位置(此处复制WebJob二进制文件以防止在使用新二进制文件更新WebJob时出现锁定问题).
WEBROOT_PATH - wwwroot的路径.
WEBJOBS_TYPE - 当前运行的WebJob的类型.
WEBJOBS_NAME - 当前运行的WebJob的名称.
因此,您可以使用%WEBROOT_PATH%\App_Data\jobs\%WEBJOBS_TYPE%\%WEBJOBS_NAME%
到达WebJob二进制文件路径,请注意,此目录上的任何更改都将导致重新启动WebJob(因为它已更改).
归档时间: |
|
查看次数: |
4011 次 |
最近记录: |