Скопируйте файлы из пакета Nuget в выходной каталог с помощью MsBuild в .csproj и команды dotnet package.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Скопируйте файлы из пакета Nuget в выходной каталог с помощью MsBuild в .csproj и команды dotnet package.

Сообщение Anonymous »

В прошлый раз мне пришлось выяснить, как извлечь некоторые файлы из пакета Nuget, у меня ушло как минимум 6 месяцев, но наконец мне удалось найти решение.

Дело в том, что это решение предполагает, что у меня есть файл .nupkg и я вручную добавляю файл .targets для выполнения процесса извлечения.

Теперь все по-другому:
  • У меня нет файла .nupgk, мы автоматически генерируем его на нашем VSTS-сервере. с помощью команды dotnet package. Затем мы используем пакет с нашего сервера Nuget.
  • Мы не можем позволить себе потратить еще 6 месяцев на поиск решения.
Вот мой ProjectName.csproj

Код: Выделить всё


netstandard2.0
PackageReference
Jérôme MEVEL
1.0.3
true


true


true
true


true


GetMyPackageFiles









all


all


all








true
NLog;;
Always




true
NLog;;
Always






Always







NLog




Как видите, я попробовал несколько разных настроек. В результате этого MsBuild создается файл NLog.config, включенный в папку NLog в корне файла пакета Nuget.

Изображение


Во время разных попыток, в зависимости от конфигурации, которую я установлен, мне удалось получить файл NLog.config по адресу src/ProjectName.Logging/NLog/NLog.config или даже по адресу lib/netstandard2.0/Nlog.config >.

Поэтому мой файл определенно включен в файл пакета Nuget, но не копируется в выходной каталог проекта, который использует пакет.
Я пытался указать файл .nuspec при создании пакета с помощью пакета dotnet, как описано здесь, но мне так и не удалось получить желаемый результат (либо только мой NLog.config был включен в пакет Nuget или во все исходные файлы). Более того, у этого подхода есть несколько недостатков, таких как переопределение конфигурации в файле .csproj или добавление бесполезной сложности. Я считаю, что то, чего я хочу, можно сделать без использования файла .nuspec (возможно, я ошибаюсь).

Я заметил build/ProjectName. Target отсутствует в моем пакете, и, вероятно, это недостающая часть. Итак, как добавить этот файл .targets без изменения пакета вручную?

Есть ли другой способ скопировать мой файл конфигурации из пакета Nuget на выходные данные каталог?

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

Большое спасибо

Подробнее здесь: https://stackoverflow.com/questions/519 ... roj-and-do
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»