【问题标题】:NuGet and Portable Class Libraries - Package doesn't target any frameworkNuGet 和可移植类库 - 包不针对任何框架
【发布时间】:2012-12-30 01:36:20
【问题描述】:

几个月来,我一直在使用 NuGet 管理我内部创建的程序集,它运行良好。我最近“发现”了可移植类库,它也很棒——直到安装包的时候。

假设我有一个针对 Windows 应用商店应用程序的 .NET 4.5、SL5 和 .NET 的 PCL。我运行nuget spec 来创建.nuspec 文件,编辑值,将其打包,然后将.nupkg 添加到我们的内部提要中。如果我在 Package Explorer 中打开 .nupkg 文件,我会在 lib 下看到一个名为portable-win+net45+sl50 的内容文件夹。

当我尝试从另一个解决方案中的任何兼容项目安装包时,我收到以下消息:

“'Project.PCL' 无法安装,因为它与解决方案中的任何项目都不兼容。该包不针对任何框架。”

如果我在包资源管理器中手动创建 .nupkg,更新版本号,为每个目标框架添加一个 lib 文件夹(不是可移植文件夹)并将 Project.PCL.dll 添加到每个文件夹,我可以添加打包到解决方案中的兼容项目。但是每次我想更新 PCl 时都做这个过程有点乏味(我一直在项目根文件夹中创建一个小 .cmd 文件以快速打包和部署)。

其他人有这个问题吗?如何以与其他类型项目相同的方式打包 PCL?

注意 - 我使用的是 VS 2012 Ultimate 和 NuGet 2.2

【问题讨论】:

    标签: nuget portable-class-library


    【解决方案1】:

    听起来 nuget spec 可能不适用于可移植类库 - 值得在 NuGet site 上启动线程或提交问题。

    不过,您也可以从 NuGet 包资源管理器创建 .nuspec 文件。只需像您一样创建包,然后选择“将元数据另存为...”以将其保存为 .nuspec。之后您可能需要手动编辑 nuspec 文件中的源路径,但您应该能够自动创建包。

    【讨论】:

    • 非常感谢您的帮助,我没有意识到我可以手动将文件添加到 nuspec。
    【解决方案2】:

    对我来说,nuget spec 和 nuget pack 在创建包并将其安装到兼容项目时可以很好地与便携式项目配合使用。
    是否要检查是否有最新的 nuget.exe (2.2),可以从 http://nuget.org/nuget.exe 下载或运行 nuget update -self 进行更新

    【讨论】:

    • 我检查过,我确实有 NuGet 2.2。您使用什么过程来创建包?
    • 从项目文件夹中的命令提示符中,我执行 nuget spec,然后运行 ​​nuget pack。你能在某个地方分享你从命令行创建的 nuget 包吗?我可以试试看?
    • 我创建了一个针对 .NET 4.5、SL5 和 Windows 应用商店应用程序的包,运行了 nuget spec 和 nuget pack。我无法通过 Visual Studio 将该包安装到任何项目中。这是SkyDrive上的包
    • 感谢分享这个包,我可以将它安装在一个面向 .net windows store app + .net 4.5 + SL5 的可移植类库中
    • 也许我的安装的某些部分有问题。无论如何,谢谢你的帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-10-18
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    相关资源
    最近更新 更多