我们的团队有一个Service Fabric应用程序,它在名为connectionString的ServiceManifest.xml文件中定义了一个环境变量
<!-- Code package is your service executable. -->
<CodePackage Name="Code" Version="1.0.0">
<EntryPoint>
<ExeHost>
<Program>myMMAPI.exe</Program>
<WorkingFolder>CodePackage</WorkingFolder>
</ExeHost>
</EntryPoint>
<EnvironmentVariables>
<EnvironmentVariable Name="ASPNETCORE_ENVIRONMENT" Value=""/>
<EnvironmentVariable Name="connectionString" Value="Server=mydb.123abc.database.windows.net; Authentication=Active Directory Password; Encrypt=True; Database=mydevdb; User Id=myId;Password=****" />
</EnvironmentVariables>
</CodePackage>
然后,我们可以在Startup.cs类中引用此环境变量。
Constants.ConnectionString = Environment.GetEnvironmentVariable("connectionString");
但是,我们需要在部署期间使用Azure DevOps管道设置此环境变量,而不是硬编码到此ServiceManifest.xml文件中。
是否有方法在Azure DevOps中传递此环境变量,以便我们可以更改每个环境的连接字符串?
2条答案
按热度按时间sbtkgmzw1#
您可以在管道中使用此任务引入使用变量切换出的令牌:https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens
这些变量可以在管道中定义,也可以在单独的文件中定义。
rekjcdws2#
您可以在管道中使用PowerShell脚本来修改ServiceMainifest.xml中的值。
例如: