Msbuild 如何使.NET核心单元测试项目使用备用的中间输出路径?
安装Visual Studio 2017社区后,我尝试创建一个.NET核心单元测试项目。使用默认输出路径,一切正常。但是将中间输出路径更改为除。\obj以外的任何其他路径会导致以下错误 正在启动测试执行,请稍候。。。 找不到源“C:\temp\vs\cl1\p4\bin\Debug\netcoreapp1.1\p4.dll”的testhost.dll。确保测试项目具有包“microsoft.testplatform.testhost”的nuget引用 复制步骤:Msbuild 如何使.NET核心单元测试项目使用备用的中间输出路径?,msbuild,.net-core,mstest,visual-studio-2017,dotnet-cli,Msbuild,.net Core,Mstest,Visual Studio 2017,Dotnet Cli,安装Visual Studio 2017社区后,我尝试创建一个.NET核心单元测试项目。使用默认输出路径,一切正常。但是将中间输出路径更改为除。\obj以外的任何其他路径会导致以下错误 正在启动测试执行,请稍候。。。 找不到源“C:\temp\vs\cl1\p4\bin\Debug\netcoreapp1.1\p4.dll”的testhost.dll。确保测试项目具有包“microsoft.testplatform.testhost”的nuget引用 复制步骤: 打开dotnet cli提示符
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
<BaseIntermediateOutputPath>obj2\</BaseIntermediateOutputPath>
</PropertyGroup>
netcoreapp1.1
obj2\
在Visual Studio IDE中,同样的问题(可能)表现为测试资源管理器工具窗口中没有出现单元测试。它如何帮助您拥有不同的基本中间输出路径?@Ignas,我的公司总是用3个顶级目录组织代码库:src(源代码管理下的所有内容,包括.sln和.csproj)、obj(中间输出路径)和bin(输出路径)。这基本上只是一种偏好。但也有一些小优势,比如只递归搜索源代码,去掉一个顶级容器以确保完整的干净构建,以及不必维护广泛的.gitignore(或等效文件)源代码管理排除列表。我觉得应该向@C.Dragon76报告此错误,因为没有为测试项目生成
testproject.deps.json
或testproject.runtimeconfig.dev.json
(bin\Debug\netcoreapp1.1
)。您可以在从dotnet test-d:log.txt
生成的log.txt
中看到这一点(启用诊断信息)。建议首先确认上述内容。然后诊断生成步骤。dotnet build-v:diag
,查看是否正确设置了IntermediateOutPath或BaseIntermediateOutPath,并将*.json
文件复制到输出目录。类似问题: