5

几个月来,我一直在使用 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

4

2 回答 2

2

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

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

于 2013-01-03T16:26:40.187 回答
1

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

于 2013-01-04T00:19:21.373 回答