来自可移植类库的Nuget:值不能为null或空字符串.参数名称:profileValue

Lie*_*ero 13 nuget nuspec portable-class-library .net-4.6

是)我有的

我有MyProj.Backend.Contracts.csproj以下可移植类库

project.json:

{
  "supports": {
    "net46.app": {},
    "uwp.10.0.app": {},
    "dnxcore50.app": {}
  },
  "dependencies": {
    "Microsoft.NETCore": "5.0.0",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.0",
    "NuSpec.ReferenceGenerator": "1.4.2"
  },
  "frameworks": {
    "dotnet": {
      "imports": "portable-net452+win81"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

和nuspec:

<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>MyProj.Backend.Contracts</id>
    <version>1.0.0</version>
    <dependencies>
      <group targetFramework="dotnet">
        <dependency id="System.Resources.ResourceManager" version="4.0.0" />
        <dependency id="System.Runtime" version="4.0.20" />
      </group>
  </metadata>
</package>
Run Code Online (Sandbox Code Playgroud)

请注意,我已将NuSpec.ReferenceGenerator添加到我的项目中,将''添加到我的项目json中.

但是,我仍然无法打包我的PCL库:

 nuget pack MyProj.Backend.Contracts.csproj
Run Code Online (Sandbox Code Playgroud)

  Attempting to build package from 'MyProj.Backend.Contracts.csproj'.
  Packing files from 'C:\Projects\MyProj\Backend\Contracts\Dev\bin\Contracts'.
  Using ''MyProj.Backend.Contracts.csproj.nuspec' for metadata.
  Value cannot be null or an empty string.
  Parameter name: profileValue
Run Code Online (Sandbox Code Playgroud)

我需要的

如何修改我的.nuspec以便我可以从我的PCL库项目创建包?

Lex*_*Lex 5

这是新project.json和指定依赖项的问题.错误消息非常糟糕,但有关如何在此处工作的一些指导:https://github.com/ericstj/NuGetDocs/blob/ericstj/nuget3samples/NuGet.Docs/Create/nuget3-packages-walkthrough.md

简短的回答似乎是使用Nuget包nuspec.referencegenerator为您正确填写nuspec文件.

只是添加参考下面的评论; 使用Nuget 3.3(未经3.4或更高版本测试),混合csproj和project.json文件似乎不起作用(或者它只适用于一部分场景).如果你想使用project.json,你似乎需要为代码文件使用新的json项目格式,反之亦然,需要使用标准的nuspec和csproj组合.