Art*_*miy 3 c# asp.net unit-testing mstest visual-studio
我使用外部化配置部分进行appsettings,每个开发人员可以使用不同的部分,如下所示:
<appSettings configSource="appsettings.config" />
Run Code Online (Sandbox Code Playgroud)
当我针对这个项目运行mstest(它是一个Web应用程序)时,它会盲目地修改这个部分,如下所示:
<appSettings configSource="appsettings.config">
<add key="microsoft.visualstudio.teamsystems.backupinfo" value="1;web.config.backup.af6ed449-e04a-4a52-99d6-b8df0b133316" />
<add key="microsoft.visualstudio.teamsystems.aspnetdevserver:/" value="56917;True;3448;1;-8588944684513929784" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
即使根据架构,这显然是错误的.
它需要修改它的原因是指定它将要运行的有关Cassini/dev服务器的信息.我认为就是这样,它似乎没有修改文件中的任何其他部分(很难说它因为它也完全重新格式化了文件).
问题是,我有什么选择才能让它发挥作用?
到目前为止,我只提出了两个实用的,都是次优的
放弃appsettings的外部配置
从Cassini切换到cassinidev - 然后我可以停止使用[AspNetDevelopmentServer()]属性,这是导致web.config需要修改的属性
在VS中配置某些内容以防止它执行此操作.为什么它甚至关心自己的卡西尼在哪个港口工作?我找不到任何配置设置.
等待MS修复此问题,因此[AspNetDevelopmentServer()]可以使用外部化的appSettings
有点延迟,所以我不知道这是否仍然与你相关....
但是你可以使用而不是的file=属性.
即:<appSettings>configSource
<appSettings file="appsettings.config" />
Run Code Online (Sandbox Code Playgroud)
虽然configSource期望只是替换整个部分,但file合并这些部分.因此,即使添加了子元素,它仍会添加外部文件中的其他元素.