gpt4 book ai didi

c# - ASP.NET 项目中的传递性 SDK 项目引用

转载 作者:行者123 更新时间:2023-12-04 15:46:01 24 4
gpt4 key购买 nike

我正在尝试迁移解决方案中的各种 C# 库项目以使用新的 SDK (VS2017+) format .该解决方案还包含几个需要引用这些库的 ASP.NET 项目。

我知道我现在无法更新 ASP.NET 项目以使用新的基于 SDK 的构建系统,但我已将它们修改为使用 <PackageReference/>条目而不是 packages.config顶级 NuGet 引用的文件。

解决方案中有很多类似下面的依赖场景:

ASP.NET Project
--> Top.Level.Package (NuGet)
--> Project A (csproj)
--> Some.Package (NuGet)
--> Project C (csproj)
--> Some.Other.Package (NuGet)
--> Project B (csproj)
--> Project C (csproj)
--> Some.Other.Package (NuGet)

即ASP.NET 项目引用顶级 NuGet 包、项目 A 和项目 B;项目 A 引用了一个 NuGet 包和项目 C;项目 B 引用项目 C; Project C 引用了一个 NuGet 包。所有非 ASP.NET 项目都已使用 <PackageReference/> 修改为 SDK 项目NuGet 包引用的条目,以及它们之间的所有传递依赖项都没有任何问题。

我遇到的问题是,当我构建 ASP.NET 应用程序时,MSBuild 正确地将项目 A 和项目 B 的程序集以及来自顶级和可传递 NuGet 包引用的程序集复制到bin文件夹,但它不会复制项目 A 和项目 B 都需要的传递项目 C 的输出。

除了将 ASP.NET 项目中的顶级项目引用添加到“丢失的”项目之外,是否有直接解决此问题的方法?

最佳答案

这是因为 ASP.NET 项目不(目前不能)支持 SDK 风格的项目类型。

SDK 风格的项目主动查询项目引用以获取更多依赖项。由于 ASP.NET 项目不这样做,您必须自己添加引用。 (或者自己添加所需的 MSBuild 逻辑,如 this file 中所示 - 搜索 IncludeTransitiveProjectReferences,但我真的不推荐这种方法,因为它可能与 VS 更新冲突)

关于c# - ASP.NET 项目中的传递性 SDK 项目引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55745712/

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