XML 配置文件和 .Net 6 迁移:配置不可用

XML Configuration files and .Net 6 migration : configuration not available

提问人:AFract 提问时间:7/14/2022 更新时间:7/14/2022 访问量:383

问:

我有一些旧应用程序,我正在逐步迁移到 .Net 6.0。

我使用过 Microsoft 升级助手,效果很好。 不过,我的应用程序仍然在较旧的框架版本中引用 DLL,但运行良好。

该配置使用带有 appsettings 部分的旧 XML 格式。 由于配置可能非常复杂,我现在不会用JSON重写所有配置文件,我想坚持XML格式一段时间。

主应用程序本身(EXE)运行良好并找到它的配置,我的问题是单元测试。

在 R# 中测试启动时,配置不可见:ConfigurationManager 不返回任何 AppSettings 内容。

我正在使用 VS2022 17.2.3、NUnit 3.13.3(最新版本)、Resharper 2022.1.2(最新版本)。

对于 EXE,在 .Net 6.0 中,我有 EXE 本身(比如 Main.EXE)、同名的 DLL(Main.DLL)以及从项目中定义的 App.config 自动生成的名为 Main.dll.config 的配置文件。这按预期工作。

对于单元测试项目,它很接近: Main.dll、Main.dll.config 以及一些 testhost.exe 和 testhost.dll 文件。配置文件被忽略,这是我的问题。 在迁移之前,这对于 exe 和单元测试都是可以的。

读取和加载它的代码对于单元测试和普通 exe 完全相同。

有什么建议可以用单元测试解决这个问题吗?

visual-studio 单元测试 resharper net-6.0 xml 配置

评论

0赞 mu88 7/14/2022
我认为我们需要这些文件来帮助您csproj
0赞 AFract 7/17/2022
我添加了以下预构建规则:<Target Name=“PreBuild” BeforeTargets=“PreBuildEvent”> <Copy SourceFiles=“app.config” DestinationFiles=“$(OutDir)\ReSharperTestRunner.dll.config” Condition=“Exists('app.config')” /> </Target> 生成与 R# 运行器匹配的配置文件。它并不完美,因为它避免了现在不得不重写配置系统......

答: 暂无答案