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,然后当我安装这样创建的软件包时,"也没有"安装依赖项.再次回到阅读文档.
我知道这并不能直接回答您的问题,但我遇到了 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 进行包管理,则可能与其相关。
| 归档时间: |
|
| 查看次数: |
2283 次 |
| 最近记录: |