我在我的 C# 项目中添加了一个 App.config 文件,其中包含很多内容:appSettings、connectionStrings、entityFramework、system.net mailSettings 等。
当我构建项目时,生成的
<assemblyname>.exe.config
文件是一个完全不同的文件:我的源App.config中没有任何东西!构建生成的文件中的所有内容都是一些自动生成的程序集绑定重定向。
App.config 文件默认添加到项目中,Build Action = None 且 Copy to Output Directory = Do not copy;我尝试将其更改为“如果较新则复制”和“始终复制” - 没有更改生成的构建文件。我从 *.exe.config 文件中获取了那些自动生成的
<assemblyBinding>
并将它们手动添加到我的源 App.config 中,看看这是否会阻止 Visual Studio 的构建覆盖我的整个 App.config — 也没有什么区别。关闭 Visual Studio,删除 .vs 文件夹,再试一次 — 结果相同。
为什么 Visual Studio 会完全
忽略我的项目的 App.config 文件并生成它自己的 .exe.config 文件,而不会从原始文件中复制任何内容??
最重要的是,我如何让 VS停止这样做?
更新 - 更多信息:具有 App.config 的项目是 .NET Framework 4.8 上的 Windows 服务。我也尝试过删除所有 obj/bin 文件夹,当我构建时,每次都会发生同样的事情。
确保安装了最新版本的 Visual Studio 2022。您还可以尝试删除“bin”和“obj”目录中的内容并重新构建项目。另外,请仔细检查您是否没有任何不需要的活动配置转换扩展。
编辑:还要检查是否有任何构建前/构建后事件会干扰加载正确的 App.config。