MSBuild /t: пакет с файлом.nuspec - поддерживает ли он замену токена?

Я пытаюсь выяснить правильное использование генерации пакетов Nuget через MSBuild /t:Pack это будет использовать файл nuspec, содержащий жетоны доллара.

Что я сделал, это:

  • Я определил <NuspecFile> в моем файле csproj
  • Я предоставил базовый файл nuspec
  • Я пытался казнить msbuild /t:Pack /p:Configuration=Release

Он отлично работает и успешно применяет данные, предоставленные в файле nuspec. Теперь, когда я обновляю nuspec с

<version>$version$</version>

Я получаю следующее

C:\Program Files\dotnet\sdk\2.2.103\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(202,5): error : An error occured while trying to parse the value '' of property 'version' in the manifest file. [C:\Users\patryk\source\repos\NuspecTokenReplacement\NuspecTokenReplacement\NuspecTokenReplacement.csproj]
C:\Program Files\dotnet\sdk\2.2.103\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(202,5): error : Value cannot be null or an empty string. [C:\Users\patryk\source\repos\NuspecTokenReplacement\NuspecTokenReplacement\NuspecTokenReplacement.csproj]
C:\Program Files\dotnet\sdk\2.2.103\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(202,5): error : Parameter name: value [C:\Users\patryk\source\repos\NuspecTokenReplacement\NuspecTokenReplacement\NuspecTokenReplacement.csproj]

Изменения доступны в следующем репо: https://github.com/patrykbuzowicz/dotnet-msbuild-pack-nuspectokenreplacement

Мой вопрос: возможно ли использовать токены в файлах.nuspec с подходом msbuild?

Я знаю, что альтернативным подходом было бы просто удалить файл.nuspec и определить метаданные в моем файле.csproj. Этот вопрос сфокусирован на подходе к nuspec.

Дополнительный вопрос: делает msbuild /t:Pack работать со старыми файлами стиля.csproj, т.е. <Project Sdk="Microsoft.NET.Sdk">? я собираюсь Invalid target framework for the file ... ошибка при выполнении msbuild /t:Pack на таком старом.csproj. И кажется "исправлено" после того, как я вручную добавить <TargetFramework> к нему (несмотря на наличие <TargetFrameworkVersion>) но это не очень хороший способ

0 ответов

Другие вопросы по тегам