Nuget Dependencies未安装

Not*_*ica 6 nuget nuget-package nuspec nuget-server

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

我试图声明依赖.我在.csproj文件所在的文件夹中生成nuspec文件.然后我手动编辑nuspec文件,在元数据标签下添加:

<metadata>
    <dependencies>
        <group targetFramework=".NETFramework4.5">
            <dependency id="DemoProject" version="2.0.0.0" />
        </group>
   </dependencies>
</metadata>
Run Code Online (Sandbox Code Playgroud)

DegetProject,版本2.0.0.0存在于Nuget Server上.我正在创建包的项目,MyProj.csproj没有通过Visual Studio添加到它的DemoProject的引用.它只是在我想要创建依赖的打包时间.这听起来很奇怪,但需要进行一些初步验证.

然后我运行pack命令:

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

然后我使用命令行将其推送到NuGet服务器.当我通过命令行安装时,安装位置只有MyProj包.

当我使用Nuget Package Explorer并创建一个包时,我可以使用Package Dependency Editor来指定依赖项.它要求我本地Nuget Server的URL,然后添加依赖项.当我安装该包时,它的工作原理!

在这两种情况下,生成的nuspec文件似乎没有区别.显然,Nuget Package Manager正在做一些我错过的事情.

任何提示?

更多细节:当我在软件包管理器控制台中创建一个lib文件夹并手动输入我的DLL时,lib-> net45-> MyProj.dll,然后当我安装这样创建的软件包时,"也没有"安装依赖项.再次回到阅读文档.

Car*_*Car 0

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

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

一切都很好,除了应用程序项目,当我转到“管理 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 进行包管理,则可能与其相关。