我是 Nuget 新手,我正在尝试为可移植类库项目创建一个 NuGet 包,该项目对我创建的另一个可移植类库具有包依赖性。
我遇到了一个问题,在调用时收到错误块包对于项目文件测试组件2.csproj(我从 VS 2013 中的 Portable for Universal Apps 模板创建了这个)。该库依赖于从另一个名为的 PCL 创建的 nuget 包测试组件1.
创建的包似乎从未包含此依赖项(控制台输出甚至显示“依赖项:无”)。但是它位于packages.config 文件中测试组件2项目的依赖关系已明确列出:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="TestComponent1" version="1.0" targetFramework="portable-win81+wpa81" />
</packages>
因此,在我的情况下,我从包含 TestComponent2.csproj 和 packages.config 的文件夹中的名为 TestComponent2 的项目的命令行调用以下命令,并打开详细信息:
> 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 =中性,PublicKeyToken = b03f5f7f11d50a3a'
或其依赖项之一。该系统找不到指定的文件。
文件名:'System.Runtime,版本=4.0.10.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a'
在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName、字符串 codeBase、证据 assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark& stackMark、IntPtr pPrivHostBinder、布尔 throwOnFileNotFound、布尔 forIntrospection、
布尔抑制安全检查)
在 System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName、字符串 codeBase、证据 assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark& stackMark、IntPtr pPrivHostBinder、布尔 throwOnFileNotFound、布尔 forIntrospection、B
olean 抑制安全检查)
...
添加文件“mypath\TestComponent2.dll”以打包为“lib\portable-win81+wpa81\TestComponent2.dll”
找到packages.config。使用列为依赖项的包
警告:未指定说明。使用“描述”。
警告:未指定作者。使用“我的名字”。
ID:测试组件2
版本:1.0
作者:我的名字
描述: 描述
依赖关系:无
添加了文件“lib\portable-win81+wpa81\TestComponent2.dll”。
已成功创建包“mypath\TestComponent2.1.0.nupkg”。
如果我打电话核心规格首先我还收到以下错误:
警告:无法从“TestComponent2.dll”中提取元数据。
使用“TestComponent2.nuspec”作为元数据。
替换令牌“标题”没有任何价值。
nuget 为新的通用 PCL 创建包是否存在问题?或者也许我有一些配置错误?我正在使用 Nuget 2.8。