【问题标题】:Nuget package install failsNuget 包安装失败
【发布时间】:2016-11-10 03:14:01
【问题描述】:

我在本地 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。我没有发现与其他软件包有任何区别。

我完全糊涂了。为什么非常相似的项目的包会产生不同的结果。

有什么方法可以找出导致错误的原因: 安装失败。回滚...

维克多

【问题讨论】:

  • 您使用的是什么 nuget 提要?我在使用 ProGet 时遇到了类似的问题。

标签: .net installation nuget


【解决方案1】:

错误的意思是“这个项目是 .NET 4.5 并且您尝试安装的 nuget 包不包含任何 .NET 4.5”。好像有什么不对劲。所以首先让我们检查一下 nuget 包。

*.nuspec 文件中的这一行:

<file src="bin\Release\*.*" target="lib\net45\" />

表示“从bin\Release 复制所有内容并放入nuget 包存档内的lib\net45 目录中”。它不检查“bin\Release”中的文件是否实际上是针对 .NET 4.5 编译的。它根本不检查“bin\Release”中是否有任何东西。

第 1 步:您需要检查包含 nuget 包代码的项目(不是使用它的项目),您实际上是针对 .NET 4.5 构建它的。例如,您可以检查 *.csproj 是否包含这样的行:

&lt;TargetFrameworkVersion&gt;v4.5&lt;/TargetFrameworkVersion&gt;

如果没问题,运行 clean 并构建以生成新的 dll。确保您使用“发布”配置而不是意外“调试”。

第 2 步:在应该使用您的 nuget 包的项目中,检查第 1 步中创建的 dll 是否确实正常。您可以手动绕过 nuget 添加对 dll 的引用(引用 -> 添加引用 -> 浏览并选择在步骤 1 中创建的 dll)。如果它可以工作,你知道你的 dll 是好的,问题就在两者之间 - nuget 包装。

第 3 步:如果第 1 步和第 2 步都正常,请检查您如何打包和发布您的 nuget 包并检查您的 nuget 提要。如果没有您的特定环境的详细信息,很难判断,但有很多选择:

  • 也许您的 nuget 提要拒绝了 nuget 发布命令?
  • 也许您推送了错误的版本号并使用了不同的版本?
  • 也许您推送的 pkg 版本已经存在,并且提要没有覆盖它。
  • 也许您的 nuget 提要与 pkg 文件发生了冲突?

【讨论】:

  • 第 1 步没问题。已经检查过了。所有项目都使用 .Net 4.5。第2步也很好。我可以参考项目没问题。第 3 步比较棘手。我已经使用 Nuget 包资源管理器检查了提要中的包包含的内容。一切对我来说都是正确的。 lib/net45 包含正确的文件。
  • 我改了包的版本号,上传了,安装好了!有点奇怪。看起来这个包被缓存在某个地方,而 VS 没有更新它。我考虑了一下并清理了解决方案使用的所有包文件夹,但没有帮助。在获得更新版本之前,我一直安装失败
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
  • 1970-01-01
相关资源
最近更新 更多