NuGet和便携式类库-包不针对任何框架

5
我已经使用NuGet几个月来管理我内部创建的程序集,效果非常好。我最近‘发现’了可移植类库,这也很棒 - 直到安装软件包的时候。
假设我有一个针对.NET 4.5、SL5和.NET for Windows Store Apps的PCL。我运行“nuget spec”命令创建.nuspec文件,编辑值,打包并将.nupkg添加到我们的内部源中。如果我在Package Explorer中打开.nupkg文件,则会看到一个名为portable-win+net45+sl50的lib下的一个内容文件夹。
当我尝试从另一个解决方案中的任何兼容项目安装软件包时,我会收到以下消息:
“'Project.PCL'无法安装,因为它与解决方案中的任何项目都不兼容。该软件包没有针对任何框架。”
如果我手动在Package Explorer中创建.nupkg文件,更新版本号,为每个目标框架(而不是可移植文件夹)添加lib文件夹,并将Project.PCL.dll添加到每个文件夹中,则可以将软件包添加到解决方案中的兼容项目中。但是,每次想要更新PCl时都需要执行此过程有点繁琐(我一直在项目根文件夹中创建一个小的.cmd文件以快速打包和部署)。
其他人是否遇到此问题?如何以与其他类型的项目相同的方式打包PCL?
注意 - 我正在使用VS 2012 Ultimate和NuGet 2.2。
2个回答

2
听起来可能是由于 nuget spec 不能用于 Portable Class Libraries - 建议在 NuGet 网站 上发布一个帖子或提交一个问题。
但是,您也可以使用 NuGet Package Explorer 创建 .nuspec 文件。只需像以前一样创建包,然后选择“保存元数据为...”将其保存为 .nuspec。之后,您可能需要手动编辑 nuspec 文件中的源路径,但应该能够自动创建包。

非常感谢您的帮助,我之前没有意识到可以手动将文件添加到nuspec中。 - Alyce

1

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


我检查了一下,我确实有NuGet 2.2。你用什么过程来创建这个包? - Alyce
从项目文件夹的命令提示符中,我执行nuget spec,然后运行nuget pack。你能否分享一下你从命令行创建的nuget包,并让我试一试? - Deepak
我创建了一个针对.NET 4.5、SL5和Windows Store应用程序的包,运行了nuget spec和nuget pack。但是我无法通过Visual Studio将该包安装到任何项目中。这是在SkyDrive上的该包。 - Alyce
1
感谢分享这个包,我已经成功安装它在一个可移植类库上,目标是 .NET Windows Store 应用程序 + .NET 4.5 + SL5。 - Deepak
也许我的安装的某些部分有问题。无论如何,感谢您的帮助。 - Alyce

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接