我正在为visual studio创建一个扩展,其中一个要求的功能是它能够将环境变量更改为多个选项之一,然后在调试后由正在开发的应用程序继承.
我尝试了以下内容
Environment.SetEnvironmentVariable("foo", "bar", EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("foo", "bar", EnvironmentVariableTarget.Machine);
Run Code Online (Sandbox Code Playgroud)
但是虽然这个变量持续存在,但是一旦我点击运行它似乎没有将它传递给程序.
我正在寻找其他方法来尝试,我不介意他们是否是hacky.
编辑:为了澄清,此过程应该对正在调试的(任意)程序透明.它也必须是一个程序化的解决方案
您可以使用编译常量。定义一个负责检索变量的类:
public class MyEnvironment {
public string SomeVariable{
get{
#if DEBUG
return "bar";
#else
return Environment.GetEnvironmentVariable("foo");
#endif
}
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用某种 IOC 来注入变量提供程序实例。读取环境的“生产”版本,或具有硬编码值的调试版本。
| 归档时间: |
|
| 查看次数: |
5938 次 |
| 最近记录: |