我正在尝试在我的控制台应用程序中嵌入以下开关设置,但我不需要app.config.还有另一种方法可以在应用程序中设置此开关吗?
我遇到过,AppContext.SetSwitch但这只适用于.NET 4.6,但我的应用程序需要在XP机器上运行.还有另一种方法吗?
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
</runtime>
Run Code Online (Sandbox Code Playgroud)
如果您的目标版本低于.NET 4.6并希望在没有app.config的情况下执行此操作,则可以执行以下操作:
var type = Type.GetType("System.AppContext");
if (type != null) {
var setSwitch = type.GetMethod("SetSwitch", BindingFlags.Public | BindingFlags.Static);
setSwitch.Invoke(null, new object[] { "Switch.System.IO.UseLegacyPathHandling", false });
setSwitch.Invoke(null, new object[] { "Switch.System.IO.BlockLongPaths", false });
}
Run Code Online (Sandbox Code Playgroud)
这样,如果您的应用程序当前在.NET 4.6+上运行(AppContext可用的地方以及那些交换机实际上会产生任何影响) - 您可以设置它们,否则什么都不做.
| 归档时间: |
|
| 查看次数: |
499 次 |
| 最近记录: |