我是 Nuget 的新手,我正在尝试为可移植类库项目创建一个 NuGet 包,该项目对我创建的另一个可移植类库具有包依赖项。
我遇到了一个问题,即在为项目文件TestComponent2.csproj调用nuget pack时收到错误消息(我是从 VS 2013 中的 Portable for Universal Apps 模板创建的)。该库依赖于从另一个名为TestComponent1的 PCL 创建的 nuget 包。
创建的包似乎从未包含此依赖项(控制台输出甚至显示“依赖项:无”)。但是,在TestComponent2项目的 packages.config 文件中,肯定会列出依赖项:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="TestComponent1" version="1.0" targetFramework="portable-win81+wpa81" />
</packages>
所以在我的情况下,我从命令行为一个名为 TestComponent2 的项目调用以下命令,从包含 TestComponent2.csproj 和 packages.config 的文件夹中,打开详细程度:
> nuget pack TestComponent2.csproj -Verbosity Detailed
警告:无法从“TestComponent2.dll”中提取元数据。警告:System.IO.FileNotFoundException:无法加载文件或程序集“System.Runtime,Version=4.0.10.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。文件名:'System.Runtime,Version=4.0.10.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'---> System.IO.FileNotFoundException:无法加载文件或程序集'System.Runtime,Version=4.0.10.0,Culture =neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。该系统找不到指定的文件。文件名:System.Reflection.RuntimeAssembly._nLoad 中的“System.Runtime,版本=4.0.10.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”。
...
添加文件“mypath\TestComponent2.dll”打包为“lib\portable-win81+wpa81\TestComponent2.dll”
找到 packages.config。使用列为依赖项的包
警告:未指定说明。使用“描述”。
警告:未指定作者。使用“我的名字”。
ID:TestComponent2
版本:1.0
作者:myname
描述:描述
依赖关系:无
添加了文件“lib\portable-win81+wpa81\TestComponent2.dll”。
成功创建包“mypath\TestComponent2.1.0.nupkg”。
如果我首先调用nuget 规范,我还会收到以下错误:警告:无法从“TestComponent2.dll”中提取元数据。对元数据使用“TestComponent2.nuspec”。替换标记“title”没有任何价值。
nuget 为新的通用 PCL 创建包是否存在问题?或者也许我有一些配置错误?我正在使用 Nuget 2.8。