gpt4 book ai didi

msbuild - 禁用特定 MsBuild 项目的传递 PackageReference 依赖项

转载 作者:行者123 更新时间:2023-12-02 17:11:25 24 4
gpt4 key购买 nike

我正在将旧式 MsBuild csproj 项目迁移为使用 PackageReference 格式,但遇到了传递依赖项问题。

考虑以下因素项目 A 引用 NuGet 包 B 和 C,每个包都包含一个使用 PackageReference 的程序集。在构建项目 A 上,使用 IL 合并将 B 作为公共(public)符号合并到 A 程序集中,将 C 作为内部化符号合并。项目 D 有一个对 A 的项目引用。

引用 A、B 和 C 的传递依赖情况 D。构建D时,编译错误类型错误CS0433:类型“X”同时存在于“A”和“B”中发生。

在上述场景中,有没有办法强制 D 不添加对 B 或 C 的显式引用?

最佳答案

Disable transitive PackageReference dependency for a specific MsBuild project

如果我理解正确,您可以尝试使用属性 <PrivateAssets>all</PrivateAssets>PrivateAssets="all"对于PackageReference 。如果您有一个标有私有(private) Assets 的包,它只会阻止它流向父项目或被打包。

enter image description here

<PackageReference Include="B" Version="1.0.0" PrivateAssets="all">
<PackageReference Include="C" Version="1.0.0" PrivateAssets="all">

可以查看文档Controlling dependency assetsthis thread了解一些详细信息。

希望这有帮助。

关于msbuild - 禁用特定 MsBuild 项目的传递 PackageReference 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52207524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com