如何在不复制或消耗输出的情况下定义项目依赖关系

问题描述 投票:0回答:1

我想使用

<ProjectReference>
来确保首先构建依赖项项目。我不想引用项目的输出程序集或复制依赖项项目的任何文件或临时依赖项。

我的具体用例是,我有一个测试项目,它使用

Testcontainers
通过 Docker 运行依赖项项目,我想确保在任何文件更改时始终重建容器。如果我只定义解决方案级别的构建顺序依赖项,则在进行更改时它不会重建容器化项目。

实际上,该依赖项是“仅编译时”依赖项。

我尝试使用

<ProjectReferece>
定义依赖项,但无法同时实现:

  1. 避免对依赖项目的运行时引用
  2. 避免将依赖项的任何文件复制到依赖项目的输出中。
c# .net-core msbuild
1个回答
0
投票

您可以使用

<ProjectReference>
但您需要将三个属性设置为 false:

  • Private:将引用的项目程序集 dll 复制到引用项目输出目录。
  • ReferenceOutputAssembly:链接到引用的程序集。这可以管理您在代码中使用程序集的能力。
  • CopyLocalSatelliteAssemblies:复制引用项目所依赖的其他程序集。
<ProjectReference Include="Dependency.csproj">
  <Private>False</Private>
  <CopyLocalSatelliteAssemblies>False</CopyLocalSatelliteAssemblies>
  <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
© www.soinside.com 2019 - 2024. All rights reserved.