如何将生成输出(dacpac)中的非dll文件包含在dotnet包nuget包中



我目前有一个.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 ..dbbin$(ConfigurationName)mydb.dacpac $(TargetDir)" /> </Target>

我目前的问题是,尽管文件是复制的,但它不包括在从dotnet pack repository.csproj

我在MS文档的深处找到了答案:除了目标之外,我还需要添加一个内容来包括我刚刚复制的文件。

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

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

最新更新