Я столкнулся со странной проблемой и пытался исправить в течение нескольких дней. Локально, я могу построить свой проект с помощью следующего файла nuspe c. Файл nuspe c сохраняется в репозитории и копируется локально при сборке из проекта c# и находится в подпапке с именем «nugetcreation». Локально я могу запустить файл nuspe c как есть, и он сгенерирует пакет nuget.
Настройка папки: проект -проектные файлы -nugetcreation -readme и nuspe c файлы
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>my.Utility.TraceWriter</id>
<version>1.0.0-beta</version>
<title>my.Utility.TraceWriter</title>
<authors>justme</authors>
<owners>justme</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>custom trace items</description>
<releaseNotes>initial release</releaseNotes>
</metadata>
<files>
<file src="Content\MyReadMes\My.Utility.TraceWriter.md" target="content\net461\MyReadMes\My.Utility.TraceWriter.md" />
<file src="..\My.Utility.TraceWriter.dll" target="lib\net461\My.Utility.TraceWriter.dll" />
<file src="..\My.Utility.TraceWriter.pdb" target="lib\net461\My.Utility.TraceWriter.pdb" />
</files>
</package>
Проблема: Когда я создаю Azure конвейер, я говорю ему запустить файл nuspe c, и я получаю сообщение об ошибке
##[error]The nuget command failed with exit code(1) and error(Error NU5019: File not found: '..\My.Utility.TraceWriter.dll'.
Но он абсолютно правильно генерируется из процесса vsbuild
CopyFilesToOutputDirectory:
Copying file from "d:\a\1\s\My.Utility.TraceWriter\My.Utility.MethodTracer\obj\Release\My.Utility.TraceWriter.dll" to "d:\a\1\s\My.Utility.TraceWriter\My.Utility.MethodTracer\bin\Release\My.Utility.TraceWriter.dll"
Шаг создания натива в azure Трубопровод довольно простой c, ничего особенного. Все модные вещи, которые я храню в файле nuspe c. Я пытаюсь заставить это работать над проектом basi c с файлом nuspe c, потому что у меня гораздо более сложная упаковка nuget, так что это моя тестовая версия.
- task: NuGetCommand@2
displayName: 'Creating nuget package'
inputs:
command: 'pack'
packagesToPack: '**/*.nuspec'
versioningScheme: 'off'
arguments: '--configuration $(buildConfiguration)'
Пока что Я пытался использовать:
- ** \ My.Utility.TraceWriter.dll (без ошибок, но в папке lib нет dll. Действует так, как будто эта строка только что пропущена)
- bin ** \ My.Utility.TraceWriter.dll
- . \ My.Utility.TraceWriter.dll
- $ конфигурация $ \ My.Utility.TraceWriter. dll
- ** \ $ configuration $ \ My.Utility.TraceWriter.dll
... ничего не работает. Кто-нибудь имеет какие-либо идеи о том, почему конвейер azure не принимает правильную (.. \ My.Utility.TraceWriter.dll) запись относительного пути в файле nuspe c и как это исправить?
Мой лоб болит от удара по клавиатуре ...
- РЕДАКТИРОВАТЬ -
Немного больше информации. Похоже, что при запуске команды nuget pack происходит 2 вещи. Весь вывод приведен ниже, но похоже, что после успешного создания nuget он пытается упаковать его снова и на этот раз не может найти файлы ??
Added file '_rels/.rels'.
Added file 'My.Utility.TraceWriter.nuspec'.
Added file 'content/net461/MyReadMes/My.Utility.TraceWriter.md'.
Added file 'lib/net461/My.Utility.TraceWriter.dll'.
Added file 'lib/net461/My.Utility.TraceWriter.pdb'.
Added file 'package/services/metadata/core-properties/f2a4d059fea6458dac5889de57641f5b.psmdcp'.
Successfully created package 'D:\a\1\a\My.Utility.TraceWriter.1.0.0-beta.nupkg'.
WARNING: NU5128: Some target frameworks declared in the dependencies group of the nuspec and the lib/ref folder do not have exact matches in the other location. Consult the list of actions below:
- Add a dependency group for .NETFramework4.6.1 to the nuspec
Attempting to pack file: D:\a\1\s\My.Utility.TraceWriter\My.Utility.MethodTracer\nuget information\My.Utility.TraceWriter.nuspec
C:\hostedtoolcache\windows\NuGet\5.4.0\x64\nuget.exe pack "D:\a\1\s\My.Utility.TraceWriter\My.Utility.MethodTracer\nuget information\My.Utility.TraceWriter.nuspec" -NonInteractive -OutputDirectory D:\a\1\a -Properties Configuration=Release -Verbosity Detailed
Error NU5019: File not found: '..\My.Utility.TraceWriter.dll'.
NuGet Version: 5.4.0.6315
NuGet.Packaging.Core.PackagingException: File not found: '..\My.Utility.TraceWriter.dll'.