代码之家  ›  专栏  ›  技术社区  ›  Sam Goldmann

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

  •  1
  • Sam Goldmann  · 技术社区  · 1 年前

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

    我的具体用例是,我有一个测试项目,它使用 Testcontainers 通过Docker运行依赖项项目,我想确保在任何文件更改时都能重新构建容器。如果我只定义一个解决方案级别的构建顺序依赖项,那么在进行更改时,它不会重新构建容器化项目。

    实际上,依赖关系是一种“仅在编译时”的依赖关系。

    我尝试使用定义依赖项 <ProjectReferece> 但不能同时实现:

    1. 避免对依赖项项目的运行时引用
    2. 避免将依赖项的任何文件复制到依赖项目的输出中。
    1 回复  |  直到 1 年前
        1
  •  2
  •   carlin.scott    1 年前

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

    • 私有:将引用的项目程序集dll复制到引用的项目输出目录。
    • ReferenceOutputAssembly:指向被引用程序集的链接。这将管理您在代码中使用程序集的能力。
    • CopyLocalSatelliteAssemblies:复制引用项目所依赖的其他程序集。
    <ProjectReference Include="Dependency.csproj">
      <Private>False</Private>
      <CopyLocalSatelliteAssemblies>False</CopyLocalSatelliteAssemblies>
      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
    </ProjectReference>