小编git*_*box的帖子

添加一个exe项目作为测试项目的依赖

我有运行在同一解决方案中生成的可执行文件的集成测试Process.Start。测试项目和exe都是net core 3.0应用。

我想在生成可执行文件的项目上的测试项目中添加一个依赖项(但没有链接到它),我像这样尝试:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
    <PackageReference Include="MSTest.TestAdapter" Version="2.0.0" />
    <PackageReference Include="MSTest.TestFramework" Version="2.0.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\TestExe\TestExe.csproj">
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
    </ProjectReference>
  </ItemGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

但是当我在测试中运行可执行文件时,它失败并显示以下错误:

A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'C:\Program Files\dotnet'

当我检查测试项目的输出目录时,我注意到它缺少TestExe.runtimeconfig.jsonexe 依赖项的输出目录中的文件。手动将此文件复制到测试项目输出目录可解决此问题。

表达这种依赖关系的正确方法是什么,以便所有必需的文件最终都在测试项目输出目录中?

c# msbuild csproj .net-core

6
推荐指数
1
解决办法
1085
查看次数

标签 统计

.net-core ×1

c# ×1

csproj ×1

msbuild ×1