gpt4 book ai didi

未安装 Nuget 依赖项

转载 作者:行者123 更新时间:2023-12-04 16:09:17 24 4
gpt4 key购买 nike

我在 IIS 上本地运行私有(private) Nuget 服务器。
我正在创建包并使用 nuget.exe 通过 commadline 将它们全部上传(稍后我必须将它放在构建服务器上,因此是命令行)。但是,我遇到了一个问题。

我正在尝试声明依赖项。我在 .csproj 文件所在的文件夹中生成 nuspec 文件。然后我手动编辑 nuspec 文件以将其添加到元数据标记下:

<metadata>
<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="DemoProject" version="2.0.0.0" />
</group>
</dependencies>
</metadata>

Nuget 服务器上存在 DemoProject 版本 2.0.0.0。
我正在为其创建包的项目 MyProj.csproj 没有对通过 Visual Studio 添加到其中的 DemoProject 的引用。只是在打包时我想创建依赖项。这听起来很奇怪,但需要进行一些初始验证。

然后我运行打包命令:

"C:\nuget\NuGet.exe"包 MyProj.csproj -IncludeReferencedProjects -Prop Configuration=Release

然后我使用命令行将它推送到 NuGet 服务器。
当我通过命令行进行安装时,安装位置只存在 MyProj 包。

当我使用 Nuget 包资源管理器并创建包时,我可以使用包依赖关系编辑器来指定依赖关系。它询问我本地 Nuget 服务器的 URL,然后添加依赖项。当我安装该软件包时,它可以工作!

在这两种情况下,生成的 nuspec 文件似乎没有区别。
显然 Nuget 包管理器正在做一些我错过的事情。

有什么提示吗?

更多详细信息:当我在包管理器控制台中创建一个 lib 文件夹并手动放置我的 dll 时,lib->net45->MyProj.dll,然后当我安装这样创建的包时,也“不”安装依赖项。再次回到阅读文档。

最佳答案

我知道这并不能直接回答您的问题,但我遇到了 NuGet 依赖项问题,我的解决方案可能会提供提示。

DLL#1 没有 NuGet 依赖项。将其推送到我的私有(private)仓库。
DLL#2 引用了 DLL#1 NuGet 包。将其推送到我的私有(private)仓库。

当我转到“管理 NuGet 包...”时,除了应用程序项目之外,一切都很好而且花花公子,DLL#2 的 NuGet 包列在“浏览”选项卡上,但它没有显示任何依赖项。我被迫同时安装 DLL#1 和 DLL#2 nuget 包。我想安装 DLL#2 nuget 包并自动获取 DLL#1。

我解决这个问题的方法是从 DLL#2 解决方案中卸载所有 NuGet 包。
然后转到工具 > 选项 > NuGet 包管理器 > 常规。然后将默认包管理格式设置为 Packages.config,然后取消选中“允许在首次安装包时选择格式”选项。

然后我安装了所有需要的 NuGet 包。现在,当我将其打包并将其推送到服务器时,它会在“管理 NuGet 包...”时显示正确的依赖关系。

nuget pack 看不到依赖项,因为它在\packages 文件夹中查找它们。该文件夹不存在,因为我使用 PackageReference 进行包管理。

切换到 Packages.config 进行包管理后,所有这些都正常工作。

我知道我遇到的问题与您的问题不同,但如果您不使用 Packages.config 进行包管理,也许它是相关的。

关于未安装 Nuget 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26111710/

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