Где я могу поместить файлы в пакет nuget, чтобы они были восстановлены? - PullRequest
0 голосов
/ 20 января 2020

Я работаю над настройкой пакетов nuget для dacpac для некоторых больших схем баз данных, которые у нас есть. Вот пример метаданных:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>xxxx.DACPAC</id>
    <version>1.0.0</version>
    <title>xxxxDatabase dacpac</title>
    <authors>xxxxxxxxx</authors>
    <owners>xxx</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <projectUrl>xxx-database.git</projectUrl>
    <iconUrl>http://github.com/contoso/UsefulStuff/nuget_icon.png</iconUrl>
    <description>DACPAC for xxxx Database</description>
    <releaseNotes>Initial release</releaseNotes>
    <copyright>Copyright ©2019 xxxx</copyright>
    <tags>dacpac database xxxxxx</tags>
  </metadata>
</package>

.nupkg выглядит следующим образом enter image description here

и каталог содержимого следующим образом:

enter image description here

Это отлично работает. Затем я создаю решение с помощью проекта ssdt и проекта c#. Я использую проект c# для хранения dacpacs. Я могу уничтожить их, затем в проекте ssdt добавить ссылки на базу данных, указывающие на dacpacs. Dacpacs не в git (часть моей цели - не пускать их).

Я фиксирую репо, затем клонирую его в пустой каталог. Пока все хорошо.

Далее я использую nuget для восстановления пакетов в Visual Studio. Однако дакпаки не восстановлены! Я думаю, это потому, что они находятся в каталоге «content» в пакете, и из того, что я могу найти, эти файлы не восстанавливаются nuget.

Итак, мой вопрос: куда поместить эти файлы, чтобы они были восстановлены? Какой каталог nupkg? Контент не работает. Пробовал инструменты безрезультатно. Думаю, мне следует спросить перед очередной слепой попыткой.

1 Ответ

1 голос
/ 21 января 2020

Итак, мой вопрос: куда поместить эти файлы, чтобы они были восстановлены? Какой каталог nupkg? Контент не работает. Пробовал инструменты безрезультатно. Думаю, мне следует спросить перед очередной слепой попыткой.

Nuget Restore - загрузить пакеты mssing. И содержимое в xx.nupkg будет добавлено в проекты только в время установки одного пакета. Nuget restore не может вернуть файлы содержимого, это не работа по восстановлению. Так что он не имеет никакого отношения к тому, в какой каталог мы помещаем файлы, это просто одно не поддерживаемое задание для nuget restore ...

В качестве обходного пути: Вы можете использовать Update-Package -reinstall в Package Manager Console переустановить пакет. И файлы содержимого будут добавлены обратно в проект. Подробнее см. этот документ . Надеюсь, это поможет:)

...