Как включить файл, отличный от dll, из выходных данных сборки (dacpac) в пакет nuget пакета dotnet?

В настоящее время у меня есть библиотека .NET Standard 2.0, которая является репозиторием для базы данных sql. У меня также есть проект .sqlproj в том же решении для этой конкретной базы данных. Библиотека репозитория создается, упаковывается и передается в наш репозиторий nuget с нашего сервера сборки (Azure DevOps) с помощью команды dotnet pack в 2.2 cli. Я хотел бы включить dacpac из проекта базы данных как часть пакета nuget репозитория, чтобы выпуски от потребителей этого пакета могли развертывать изменения dacpac. Я планирую убедиться, что перезаписываемая версия является более поздней, чем версия пакета при развертывании.

Я могу добавить файл dacpac в выходные данные сборки проекта репозитория, используя цель перед сборкой.

<Target Name="mydb" AfterTargets="Build"> <Exec Command="XCOPY /Y /R ..\db\bin\$(ConfigurationName)\mydb.dacpac $(TargetDir)" /> </Target>

Моя текущая проблема заключается в том, что, хотя файл копируется, он не включается в результирующий файл nuget из dotnet pack repository.csproj


person Kyle J V    schedule 15.11.2019    source источник


Ответы (1)


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

<ItemGroup>
    <Content Include="$(TargetDir)\mydb.dacpac" >
      <Pack>true</Pack>
      <PackagePath>\dacpacs\</PackagePath>
    </Content>
  </ItemGroup>  

https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli

person Kyle J V    schedule 15.11.2019