Nuget 3 - Octopack - 错误的框架目标错误

时间:2015-12-08 16:43:05

标签: .net visual-studio-2015 nuget octopack

我正试图解决这个问题。我的环境:

  • VS2015
  • Nuget extension 3.3.0.167
  • Octopack package 3.0.45。

当我在下面运行以下命令时,正确生成了包:

 v4.0.30319\msbuild PackagingTest.sln /t:Rebuild
/p:Configuration=Release /p:RunOctopack=true
/p:OctoPackPackageVersion=1.1.1/p:OctoPackPublishPAckageToFileShare=C:\Packages

但是当我尝试在第二个项目中安装软件包时,我得到了这个例外:

  

无法安装包'PackagedLibrary 1.1.1'。你正试图   将此包安装到目标项目中   '.NETFramework,Version = v4.5',但包中不包含任何内容   程序集引用或与之兼容的内容文件   框架。有关更多信息,请与软件包作者联系。

  • 两者都针对相同的框架(4.5)。
  • 如果从包中提取库并引用它,就没有什么奇怪的了。
  • 如果您从VS2013添加软件包,它将完美运行。

我注意到Octopack版本(从v3端点https://api.nuget.org/v3/index.json下载)具有Nuget.exe v.2.8,而不是它应该的3.xxx。所以我试图手动替换nuget.exe文件来生成包,没有任何更改。

我遗失的任何线索?

提前致谢

1 个答案:

答案 0 :(得分:5)

据我所知,使用Octopack会生成一个只能用于OctopusDeploy的NuGet包(.nupkg)。它不会生成可由Visual Studio中的NuGet使用的NuGet包。

虽然Octopus Deploy使用.nupkg文件,但.nupkg文件中的文件结构却不同。为了能够将.nupkg安装到.NET 4.5项目中,需要在 lib \ net45 目录中进行组装。如果您查看.nupkg内部,很可能没有此目录,但可能只有.nupkg根目录中的程序集。

如果你想将.nupkg文件与NuGet一起使用,你应该看看使用NuGet.exe来生成.nupkg文件。

原因可能与Visual Studio 2013一起使用的是,它将其视为解决方案级别的NuGet包,Visual Studio 2015目前不支持。