未安装 Nuget 依赖项

标签 nuget nuget-package nuget-server nuspec

我在 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/

相关文章:

c++ - Nuget 包通过控制台安装,但没有为 C++ 项目添加引用

iis-7.5 - 从 iis 运行 nuget 库时出现 500.19 错误

c# - 如何知道 nuget mahapps 地铁图标包中的可用图标名称?

c# - 安装 Microsoft.Azure.CosmosDB.Table NuGet 时出错

nuget - 如何打包面向通用 Windows 平台的多架构 .NET 库?

visual-studio-2015 - 安装NuGet时Visual Studio挂起

c# - 我自己托管的 NuGet 服务器不再正常工作

visual-studio - 如何修复 ChakraCore NuGet 包错误?

asp.net - Azure Functions 项目在 Azure Functions 扩展升级后出现 System.ValueTuples 错误