NuGet和可移植类库 - 包不针对任何框架

时间:2012-12-30 01:36:20

标签: nuget portable-class-library

我一直在使用NuGet管理我内部创建的程序集几个月,而且它运行良好。我最近'发现'便携式类库,这也很棒 - 直到安装软件包的时候。

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

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

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

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

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

注意 - 我正在使用VS 2012 Ultimate和NuGet 2.2

2 个答案:

答案 0 :(得分:2)

听起来好像nuget spec对于便携式类库不起作用 - 值得在NuGet site上启动一个帖子或提出问题。

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

答案 1 :(得分:1)

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