2

我有一个附加到 app.config 的设置文件,我正在使用 pre-Build 命令行调用一个 bat 文件,该文件应该根据项目的选定配置(调试、发布 ...)覆盖 app.config在构建过程之前。一切看起来都不错,app.config 在构建时得到更新(我可以看到设置和 app.config 的变化)。但是,当我尝试使用以下命令在设置中获取任何值时:

var test = Settings.Default.DBConn;

但是...第一次(app.config 没有被覆盖)一切正常,但是当我更改配置时(比如说从调试到发布),抛出一个错误,表明 xml 有问题或类似的东西,错误是 ConfigurationErrorsException,消息是

无法解析属性“serializeAs”的值。错误是:枚举值必须是以下之一:String、Xml、Binary、ProviderSpecific。

这是我的bat文件:

@echo off


if %1==Debug  GOTO DE
if %1==DEV GOTO DEV
if %1==Release GOTO PR



:DE
xcopy  %2configs\app_Debug.config  %2app.config  /Y
GOTO END

:PR
xcopy  %2configs\app_PROD.config  %2app.config  /Y
GOTO END

:DEV
xcopy  %2configs\app_DEV.config  %2app.config /Y
GOTO END

:END

我真的不知道我检查了这些讨论的问题是什么

汉塞尔曼

覆盖 App.Config 设置

在开发过程中管理多个应用配置文件

还有更多。但我找不到任何解决方案。你能帮我解决这个问题吗!谢谢。

4

1 回答 1

3

有一个名为 SlowCheetah 的 Visual Studio 扩展,它就是为此目的而设计的。它允许您为每个构建配置向 app.config 提供 XSLT 转换。看看http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5

于 2014-04-17T07:03:15.473 回答