2

我目前有一个 .NET Standard 2.0 库,它是针对 sql 数据库的存储库。我在该特定数据库的同一解决方案中也有一个 .sqlproj 项目。使用 2.2 cli 上的 dotnet pack 命令构建、打包并从我们的构建服务器 (Azure DevOps) 推送到我们的 nuget 存储库。我想将数据库项目中的 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

4

1 回答 1

2

我在 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

于 2019-11-15T15:46:33.837 回答