我在做什么:
bin\Debug
文件夹并将只读属性设置为文件 WpfApplication1.exe.config 结果:
Error 2 Unable to copy file "App.config" to "bin\Debug\WpfApplication1.exe.config". Access to the path 'bin\Debug\WpfApplication1.exe.config' is denied. WpfApplication1
为什么VS仍在尝试复制文件,以及如何强制它停止这样做?
P.S。我正在几台远程计算机上调试我的应用程序(根据需要在它们之间切换),每个应该拥有自己的配置。这就是为什么我不希望VS覆盖每个构建的配置。
答案 0 :(得分:0)
如果你真的需要强制阻止VS更改配置,最简单的方法就是编写简单的脚本来保护配置:
将脚本backup-config的执行添加到预构建和restore-config到构建后。 备份配置应该将配置复制到安全的地方,并且在VS更改之后恢复应该将其复制回来。
答案 1 :(得分:0)
App.config的默认值是“不复制”,并且不会复制到该构建过程的那一部分。 如果您需要不同版本的版本(Debug_1,Debug_2,...),请根据构建类型将预构建事件脚本复制到App.config.debug_1或App.config.debug_2,...到App.config。
我认为你不能改变visual studio复制app.config的方式。但我认为这可能是你的解决方案。把它放在程序的开头。
#if DEBUG_1
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", "debug_1.config");
#endif
#if DEBUG_2
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", "debug_2.config");
#endif
...
这样配置文件将被复制,但不会被使用。只需复制该配置并进行所需的更改即可。