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

13

我的拥有

我拥有可移植类库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"
    }
  }
}

以及 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>

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

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

 nuget pack MyProj.Backend.Contracts.csproj

:表示一个段落。
  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

我需要什么

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

1个回答

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组合。

我尝试添加这个包并且稍微调整了一下我的nuspec文件,但是我仍然得到相同的错误。 - Liero
nuspec.referencegenerator 不应该使 csproj 打包工作。它有助于在每次构建或通过命令行向 nuspec 添加依赖项。 - Liero
1
尽管最近的3.4版本情况可能有所改变,但是试图在csproj中使用project.json似乎并不起作用。我尝试了一个跨平台包并回归到csproj和nuspec方法。据我所知,如果想要使用project.json,则需要同时使用新的项目格式来编写代码文件。 - Lex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接