Nuget包安装失败
我有一些Nuget包创建并安装在我的本地Nuget服务器上。他们工作正常。我可以安装它们没有问题。 但是,当我创造了另一个包,并把它放到包安装服务器总是失败,出现错误:Nuget包安装失败
Could not install package ... You are trying to install this package into a project that targets '.NETFramework,Version=v4.5', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
该项目是完全一样的:它使用相同的架构版本(4.5)。我已经创建了另一个具有相同设置的包,并且它按预期工作。 该项目没有引用任何需要其他框架的东西。实际上,它使用的所有程序集也都用于其他程序包。
nuspec是相同的:与其他包中的目标位置相同。我试图包含其他框架版本,并没有帮助。
<file src="bin\Release\*.*" target="lib\net45\" />
我检查了生成的nupkg中包含了什么。它有lib/net45中的dll。我没有发现与其他软件包有任何不同之处。
我完全困惑。为什么非常类似项目的软件包会产生不同的结果。
有什么方法可以找出导致错误的原因: 安装失败。回滚...
维克多
错误的意思是“这个项目是.NET 4.5和您正在试图安装NuGet包不包含任何用于.NET 4.5”。看起来有点不对劲。所以首先让我们来看看nuget包。
这条线*.nuspec
文件:
<file src="bin\Release\*.*" target="lib\net45\" />
的意思是“从bin\Release
的所有内容复制,并把在lib\net45
目录中的NuGet包档案内”。它不检查“bin \ Release”中的文件是否实际上是针对.NET 4.5编译的。它不检查“bin \ Release”中是否有任何内容。
第1步:您需要检查包含您的nuget包(不是使用它的项目)的代码的项目,您实际上正在使用.NET 4.5构建它。例如,您可以检查*.csproj
包含行这样的:
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
是否确定运行干净,并且建设做出新的DLL。确保你使用“释放”配置,而不是偶然的“调试”。
第2步:在应该使用nuget包的项目中,检查第1步中制作的dll是否确实正常。您可以手动添加对dll的引用以绕过nuget(引用 - >添加引用 - >浏览并选择步骤1中创建的dll)。如果它能起作用,那么你知道你的dll是好的,问题在于 - nuget包装。
第3步:如果在第一步和第二步是确定检查你如何打包和发布的NuGet包,并检查您的NuGet饲料。很难说没有你的具体环境的细节,但有很多选择:
- 也许你的nuget饲料拒绝nuget发布命令?
- 也许你在推错版本号并使用不同的版本?
- 也许您正在推送已存在版本的pkg,并且供稿不会覆盖它。
- 也许你的nuget feed正在搞乱pkg文件?
您使用的是哪种nuget饲料?我与ProGet有类似的问题。 –