c# - 如何在 dotnet pack nuget 包中包含来自构建输出 (dacpac) 的非 dll 文件?

标签 c# .net-core msbuild nuget sqlproj

我目前有一个 .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>  

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

关于c# - 如何在 dotnet pack nuget 包中包含来自构建输出 (dacpac) 的非 dll 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58880039/

相关文章:

c# - 无法在 ASP.NET Core 中使用带有 Identity 的 MySql 数据库

c# - 将带有控件的 Asp.Net GridView 转换为 DataTable

c# - 表单 View 设计器无法在使用 C# .NET Core 3.1 的 Visual Studio 2019 中工作

c# - Spin 在 Portable Class Library 中等待多次自旋

.net - 如何在 AfterBuild 中将 ILMerge 与 .NET 4.5 结合使用?

msbuild - SSDT 事务发布?

jenkins - warningsPlugin 未从 MSBuild 收集警告

c# - 从 C# 的 .txt 文件中读取 SQL 查询

c# - MVC LINQ - 在相关表中使用 Contains 搜索/查询文本

c# - 如何使用 .NET Core 从命令行从 nuget 下载包?