Nuget из переносимой библиотеки классов: значение не может быть нулевым или пустой строкой. Имя параметра: profileValue

Что я имею

У меня есть Portable Class Library MyProj.Backend.Contracts.csproj со следующими

проект.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"
    }
  }
}

и нуспек:

<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

Что мне нужно

How to modify my .nuspec so I can create package from my PCL library project?


person Liero    schedule 15.01.2016    source источник


Ответы (1)


Это проблема с новым 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.

person Lex    schedule 29.02.2016
comment
Я пытался добавить этот пакет, а также немного поиграть с моим nuspec, но все равно получаю ту же ошибку. - person Liero; 30.03.2016
comment
nuspec.referencegenerator не должен заставлять работать упаковку csproj. Это помогает добавлять зависимости к nuspec в каждой сборке или в командной строке. - person Liero; 05.04.2016
comment
Хотя ситуация могла измениться для недавнего выпуска 3.4, попытка использовать project.json с csproj действительно не работает. Я попробовал кроссплатформенный пакет и вернулся к методу csproj и nuspec. Насколько я понимаю, если вы хотите использовать project.json, вам также нужно использовать новый формат проекта для ваших файлов кода. - person Lex; 07.04.2016