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

我的具体用例是,我有一个测试项目,它使用Testcontainers通过Docker运行依赖项项目,并且我希望确保在任何文件发生更改时始终重新构建容器.如果我只定义解决方案级别的构建顺序依赖项,则在进行更改时它不会重新生成容器化项目.

实际上,该依赖项是"仅在编译时"的依赖项.

我try 使用<ProjectReferece>来定义依赖项,但无法同时实现:

  1. 避免对依赖项项目的运行时引用
  2. 避免将依赖项的任何文件复制到依赖项项目的输出中.

推荐答案

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

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

Csharp相关问答推荐

Microsoft.AspNetCore.Mvc. Controller Base.用户:属性或索引器Controller Base.用户无法分配给--它是只读的

为什么我在PuppeteerSharp中运行StealthPlugin时会出现错误?

react 式扩展连接中的非交叉LeftDurationTimeout

Blazor:类型或命名空间名称Components在命名空间中不存在''

如何告诉自己创建的NuGet包在应用程序中发生了变化?

限制特定REST API不被访问,但部署代码

使用C#HttpClient以多部分形式数据发送带有非ASCII文件名的文件的问题

当前代码Cosmos DB 3.37.1:PartitionKey key key mismatch exception

如何在C#中将方法/线程启动传递给基本构造函数

带有列表参数的表达式树

如何让两个.NET版本不兼容的项目对话?

WPF DataGrid文件名列,允许直接输入文本或通过对话框按键浏览

无法使用[FromForm]发送带有图像和JSON的多部分请求

Content WithTargetPath实际上是有效的MSBuild项吗?

如何在特定环境中运行dotnet测试?

当我手动停止和关闭系统并打开时,Windows服务未启动

如何在绑定到数据库的datagridview中向上或向下移动行

WPF如何获取有关从一个视图模型更改另一个视图模型的信息

为什么我的属性即使没有显式地设置任何[必需]属性,也会显示验证?

如何在C#中反序列化Java持续时间?