gpt4 book ai didi

c# - 如何设置 nuget 引用的动态路径?

转载 作者:太空狗 更新时间:2023-10-30 01:29:44 28 4
gpt4 key购买 nike

这是示例项目结构:

{ ProjectA }
{ packages } <-- packages are created here
{ ProjectA }
- ProjectA.csproj <-- references ProjectB and C.
- packages.config
- ProjectA.sln <-- contains all projects: A, B and C.

{ ProjectB }
- ProjectB.csproj
- packages.config

{ ProjectC }
- ProjectC.csproj
- packages.config

*{ packages} <-- *When I manually paste packages here. So one level above ProjectB.csproj file, then ProjectB compiles.

ProjectA 解决方案包含所有三个项目:A、B 和 C。ProjectA 引用 ProjectB 和 ProjectC。

当我编译 ProjectA(同时编译项目 B 和 C)时,所有 nuget 包都下载到与解决方案文件同一级别的 {packages} 文件夹中。问题是 ProjectB 没有编译。是的...只有 ProejctB。我什至不会去研究为什么只有一个项目可以编译,尽管它们的配置完全相同。无论如何...

在 ProjectB 和 C 中,当我展开来自 nuget 的引用 dll 时,可以看到它们丢失了(带有黄色矩形)。 ProjectC 无论如何都会编译,但 ProjectB 不会。错误说它找不到明显在包文件夹中的引用。

我的问题是,我该如何编程/配置该语句(伪代码):

“亲爱的ProejctB,请在与解决方案文件同级生成的包文件夹中查找引用。解决方案文件,正在尝试编译你。谢谢你”

附言。所以从技术上讲,dll(引用)的路径将是动态的。它会根据打开/编译项目的解决方案文件而改变。可能吗?

最佳答案

修复它的最简单方法是将 HintPath 设置为:

<HintPath>$(SolutionDir)\packages\...

在 ProjectB 和 ProjectC 的 .csproj 文件中。它的字面意思是:“在与解决方案文件同级生成的包文件夹中查找引用。解决方案文件,它现在正试图编译你”

此问题已报告多次。我相信它已修复 here .还有NuGetReferenceHintPathRewrite , 但我没有测试它。

关于c# - 如何设置 nuget 引用的动态路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50050623/

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