我目前有一个 .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
最佳答案
我在MS文档的深处找到了答案: 除了目标之外,我还需要添加一个内容以包含我刚刚复制的文件。
<ItemGroup>
<Content Include="$(TargetDir)\mydb.dacpac" >
<Pack>true</Pack>
<PackagePath>\dacpacs\</PackagePath>
</Content>
</ItemGroup>
关于c# - 如何在 dotnet pack nuget 包中包含来自构建输出 (dacpac) 的非 dll 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58880039/