Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Azure云启动环境变量持久化_Azure_Environment Variables_Azure Cloud Services - Fatal编程技术网

如何让Azure云启动环境变量持久化

如何让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="

对于Azure云服务,在ServiceDefinition.csdef文件中定义启动任务时,可以选择设置环境变量。它看起来像这样:

<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