在.NET 8.0解决方案中运行Stryker时找不到WorkerExtensions.AssemblyInfo.cs
解决Stryker在.NET 8.0解决方案中查找net6.0文件的问题
问题现象
突变测试运行期间发生错误System.IO.DirectoryNotFoundException: 找不到路径的一部分 'C:...\obj\Release\net6.0\WorkerExtensions.AssemblyInfo.cs'
解决方案
显式指定目标框架运行Stryker
执行命令时直接指定目标框架为net8.0,避免Stryker读取旧框架的默认配置:dotnet stryker --target-framework net8.0清理残留构建缓存
删除解决方案下所有项目的obj和bin文件夹,再重新构建项目,清除net6.0相关的缓存文件:dotnet clean dotnet build --configuration Release --framework net8.0检查项目与解决方案配置
- 打开所有项目的
.csproj文件,确认<TargetFramework>节点值为net8.0,无残留的net6.0配置; - 在Visual Studio中,右键解决方案→属性→配置属性,确保所有项目的目标框架均设为net8.0,且构建配置与报错中的
Release一致。
- 打开所有项目的
通过配置文件固定目标框架
在项目根目录的stryker-config.json中添加目标框架配置,永久指定运行环境:{ "target-framework": "net8.0", // 其他现有配置项... }排查依赖包兼容性
检查项目引用的NuGet包,确保所有包均支持.NET 8.0。若存在绑定net6.0的依赖,更新至最新兼容版本或替换为支持net8.0的替代包。
内容的提问来源于stack exchange,提问作者Colin
相关产品推荐
相关产品推荐

