NuGet和Portable类库-包不';不要针对任何框架

NuGet和Portable类库-包不';不要针对任何框架,nuget,portable-class-library,Nuget,Portable Class Library,几个月来,我一直在使用NuGet管理我的内部创建的程序集,它工作得非常好。我最近“发现”了可移植类库,这也很好——直到安装软件包的时候 假设我有一个针对Windows应用商店应用的.NET 4.5、SL5和.NET的PCL。我运行nuget spec创建.nuspec文件,编辑值,打包,并将.nupkg添加到我们的内部提要中。如果我在PackageExplorer中打开.nupkg文件,我会在lib下看到一个名为portable win+net45+sl50的内容文件夹 当我尝试从其他解决方案中

几个月来,我一直在使用NuGet管理我的内部创建的程序集,它工作得非常好。我最近“发现”了可移植类库,这也很好——直到安装软件包的时候

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

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

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

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

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


注意-我使用的是VS 2012 Ultimate和NuGet 2.2,听起来可能是
NuGet spec
不适用于可移植类库-这值得启动一个线程或在上提交一个问题


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

对于我来说,nuget spec和nuget pack在创建包并将其安装到兼容项目时,在可移植项目中运行良好。

是否要检查您是否拥有最新的nuget.exe(2.2),它可以从下载或通过运行nuget update-self进行更新

非常感谢您的帮助,我没有意识到我可以手动将文件添加到nuspec。我检查过,我确实拥有nuget 2.2。您使用什么过程来创建包?在项目文件夹的命令提示符下,我执行nuget spec,然后运行nuget pack。你能在某个地方共享你从命令行创建的nuget软件包吗?我可以试试吗?我创建了一个针对.NET 4.5、SL5和Windows应用商店应用的软件包,运行了nuget spec和nuget pack。我无法通过Visual Studio将该软件包安装到任何项目中。这是上的软件包感谢您共享该软件包,我能够将其安装在针对.net windows应用商店应用程序+.net 4.5+SL5的可移植类库上。可能是我的部分安装有问题或其他问题。无论如何,谢谢你的帮助。