Nuget 3 - Octopack - 错误的框架目标错误
Nuget 3 - Octopack - Wrong Framework Target error
我正在努力解决这个问题。我的环境:
- VS2015
- Nuget 扩展 3.3.0.167
- Octopack 包 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
但是当我尝试在第二个项目中安装包时,我得到了这个异常:
Could not install package 'PackagedLibrary 1.1.1'. 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)。
- 如果您从包中提取库并引用它,则不会发生任何奇怪的事情。
- 如果你从 VS2013 添加包,它工作得很好。
我注意到 Octopack 版本(从 v3 端点 https://api.nuget.org/v3/index.json 下载)有 Nuget.exe v.2.8,而不是它应该的 3.xxx。所以我尝试手动替换 nuget.exe 文件来生成包,没有任何变化。
我遗漏了什么线索吗?
提前致谢
据我所知,使用 Octopack 将生成一个仅可用于 OctopusDeploy 的 NuGet 包 (.nupkg)。它不会生成 NuGet 可以在 Visual Studio.
中使用的 NuGet 包
虽然 Octopus Deploy 使用 .nupkg 文件,但 .nupkg 文件中的文件结构不同。为了使 .nupkg 能够安装到 .NET 4.5 项目中,它需要 lib\net45 目录中的程序集。如果你查看你的 .nupkg 内部,它很可能没有这个目录,但可能会将程序集放在 .nupkg 的根目录中。
如果您想将 .nupkg 文件与 NuGet 一起使用,您应该考虑使用 NuGet.exe 生成 .nupkg 文件。
可能与 Visual Studio 2013 一起使用的原因是它将其视为 Visual Studio 2015 当前不支持的解决方案级别的 NuGet 包。
我正在努力解决这个问题。我的环境:
- VS2015
- Nuget 扩展 3.3.0.167
- Octopack 包 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
但是当我尝试在第二个项目中安装包时,我得到了这个异常:
Could not install package 'PackagedLibrary 1.1.1'. 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)。
- 如果您从包中提取库并引用它,则不会发生任何奇怪的事情。
- 如果你从 VS2013 添加包,它工作得很好。
我注意到 Octopack 版本(从 v3 端点 https://api.nuget.org/v3/index.json 下载)有 Nuget.exe v.2.8,而不是它应该的 3.xxx。所以我尝试手动替换 nuget.exe 文件来生成包,没有任何变化。
我遗漏了什么线索吗?
提前致谢
据我所知,使用 Octopack 将生成一个仅可用于 OctopusDeploy 的 NuGet 包 (.nupkg)。它不会生成 NuGet 可以在 Visual Studio.
中使用的 NuGet 包虽然 Octopus Deploy 使用 .nupkg 文件,但 .nupkg 文件中的文件结构不同。为了使 .nupkg 能够安装到 .NET 4.5 项目中,它需要 lib\net45 目录中的程序集。如果你查看你的 .nupkg 内部,它很可能没有这个目录,但可能会将程序集放在 .nupkg 的根目录中。
如果您想将 .nupkg 文件与 NuGet 一起使用,您应该考虑使用 NuGet.exe 生成 .nupkg 文件。
可能与 Visual Studio 2013 一起使用的原因是它将其视为 Visual Studio 2015 当前不支持的解决方案级别的 NuGet 包。