我有一个由多个开发人员共享的.Net应用程序。一些开发人员希望在Application_Start()
中使用不同的配置,但我们都共享相同的代码库。
定义不同开发人员可以更改的自定义变量的最佳方法是什么?
我目前的做法是:
string value = Environment.GetEnvironmentVariable(UserEnvironmentalVariableName, EnvironmentVariableTarget.User);
但是应用程序不是在IIS上的用户帐户下运行,所以这不起作用。
答案 0 :(得分:2)
三个想法:
1)如何使用普通的AppSettings并在应用程序的web.config中存储所有对每个人都标准的。 然后任何人都可以在他们的根web.config(如\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ config \ web.config)中存储他们想要的任何其他变量。只要“UserEnvironmentalVariableName”不在您的应用程序的web.config中,它就会继承机器的根web.config中的任何内容。
2)如果开发人员使用Windows 10,那么现在可以在应用程序池级别设置环境变量
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='DefaultAppPool'].environmentVariables.[name='myPersonalVariable',value='some value']" /commit:apphost
或者只需编辑applicationHost.config并将其添加到下面:
<applicationPools>
<add name="DefaultAppPool" managedRuntimeVersion="v4.0">
<environmentVariables>
<add name="myPersonalVariable" value="some value" />
</environmentVariables>
</add>
</applicationPools>
3)另一个是在Visual Studio中使用配置转换:https://msdn.microsoft.com/en-us/library/dd465318.aspx