В пакете Nuget отсутствует файл .target в папке сборки - PullRequest
0 голосов
/ 23 декабря 2018

Я собрал пакет nuget при публикации его на сайте nuget.server.Но когда я пытаюсь использовать пакет с сервера, файл .targets из папки build отсутствует в этом файле.Но если я использую пакет из локальной папки, он работает как надо.Как мне заставить его работать?

Если я посмотрю пакет в папке на сервере, то все будет хорошо.

1 Ответ

0 голосов
/ 25 декабря 2018

Мне не ясно, имеете ли вы в виду использование (обращение и восстановление) пакета или сборку (упаковку) пакета.

Если проблема заключается в упаковке nupkg, NuGet требуются файлы реквизита и целейиметь определенных имен файлов в определенных папках , но если вы заставили его работать хотя бы один раз, вы, вероятно, уже знаете это.Если это не проблема с упаковкой, вам нужно дать нам больше информации, потому что неправильное использование имени файла является наиболее распространенной проблемой, и я не могу догадаться, в чем еще проблема может быть.В частности, если пакет упакован на вашем локальном компьютере не так, как на сервере, это означает, что между тем, как вы упаковываете файлы на двух компьютерах, есть что-то другое, поэтому нам нужно больше информации о том, как собрать и упаковатьработать с вашим проектом.

Если проблема в использовании (восстановлении) пакета, есть несколько возможностей.Я думаю, что у вас когда-то был пакет без корректно работающего файла целей, и вы восстановили пакет на сервере.По своей конструкции пакеты NuGet являются неизменяемыми, что означает, что содержимое пакета (тот же идентификатор и версия) не может быть изменено.Это позволяет NuGet загрузить пакет из удаленного канала один раз, сохранить его в глобальной папке пакета (не в кеше; у них никогда не истекает срок действия), и в следующий раз, когда NuGet потребуется восстановить тот же пакет (id + версия), который он использует вглобальная папка пакета, она не загружается снова.Это означает, что если вы однажды создали плохой nupkg и восстановили его на машине, а затем исправили nupkg и сохранили тот же номер версии, эта машина никогда не получит исправленный nupkg.Вы должны удалить его из папки глобальных пакетов.Я не уверен на 100%, но я думаю, что если у вас есть локальная лента файлов и вы восстанавливаете проект, использующий packages.config, nupkg не сохраняется в папке глобальных пакетов, поэтому у него не возникает та же проблема.Короче говоря, я думаю, что проблема в том, что вы изменили содержимое nupkg один раз без изменения номера версии, и на одной из машин в папке глобальных пакетов есть старая копия, которую он продолжает использовать.

Если это непроблема, следующая наиболее вероятная причина заключается в том, что nupkg в фиде сервера имеет содержимое, отличное от nupkg в локальном фиде.Я никогда не использовал NuGet.Server, но некоторые репозитории nuget (например, nuget.org) не позволяют перезаписывать nupkgs.Таким образом, если вы отправили nupkg на свой сервер, исправили проблему в nupkg без изменения версии, а затем попытались выполнить повторную загрузку, возможно, вторая отправка не удалась.

Таким образом, ваш вопрос не даетДостаточно информации, чтобы мы могли вам помочь, но я писал о самых распространенных проблемах выше.Если это не поможет, вам нужно предоставить нам больше информации. пример проблемы - лучший способ дать нам достаточно информации, чтобы помочь вам.

...