如何让Azure云启动环境变量持久化
对于Azure云服务,在ServiceDefinition.csdef文件中定义启动任务时,可以选择设置环境变量。它看起来像这样:如何让Azure云启动环境变量持久化,azure,environment-variables,azure-cloud-services,Azure,Environment Variables,Azure Cloud Services,对于Azure云服务,在ServiceDefinition.csdef文件中定义启动任务时,可以选择设置环境变量。它看起来像这样: <Startup> <Task commandLine="install.cmd" executionContext="elevated" taskType="simple"> <Environment> <Variable name="YourEnvironmentVariable" value="
<Startup>
<Task commandLine="install.cmd" executionContext="elevated" taskType="simple">
<Environment>
<Variable name="YourEnvironmentVariable" value="YourValue"/>
</Environment>
</Task>
</Startup>
setx YourEnvironmentVariable "%YourEnvironmentVariable%" /M
该环境变量似乎仅在其定义的任务期间(在本例中,运行install.cmd)持续存在。如果您将RDP映射到云实例中并检查环境变量,您将看不到其中列出的环境变量。有没有办法让环境变量持久化?Azure云框架似乎没有为您提供一种简单的方法,但这是可能的。我通过手动设置install.cmd来持久化环境变量。在我的例子中,
install.cmd
调用了一个PowerShell脚本,该脚本执行以下操作:
# Make the environment variables defined in ServiceDefinition.csdef persist
[Environment]::SetEnvironmentVariable("YourEnvironmentVariable", "$Env:YourEnvironmentVariable", "Machine")
您可以在不使用PowerShell的情况下完成此任务。它看起来像这样:
<Startup>
<Task commandLine="install.cmd" executionContext="elevated" taskType="simple">
<Environment>
<Variable name="YourEnvironmentVariable" value="YourValue"/>
</Environment>
</Task>
</Startup>
setx YourEnvironmentVariable "%YourEnvironmentVariable%" /M