繁体   English   中英

如何从 c# 中的 nuget 包部署 dacpac 文件

[英]How to deploy dacpac file from a nuget package in c#

我有一个包含我的 SQL 数据库项目的 nuget 包。 如何引用包中的 dacpac 文件以将其部署到我的 azure sql server? 我想从我的 ASP.net 核心应用程序中做到这一点。

我也需要这样做,所以这对我有用:

如果您的应用程序使用新的 SDK 格式,您可以在项目中引用的 nuget 包中引用内容文件。 您需要在包引用中添加值为true<GeneratePathProperty>节点:

  <ItemGroup>
    <PackageReference Include="My.Package" Version="1.0.1">
      <GeneratePathProperty>true</GeneratePathProperty>
    </PackageReference>
  </ItemGroup>

然后,您可以使用内容链接包含要引用的文件。 按照惯例,VS 变量名称以前缀“Pkg”开头,并用下划线替换句点。 您还可以选择包含一个<Link>节点,该节点在您的项目中查看包含的文件时为包含的文件提供“名义”路径。 下面的例子:

  <ItemGroup>
    <Content Include="$(PkgMy_Package)\contentFiles\any\net48\SomeDb.dacpac">
      <Link>dacpac\SomeDb.dacpac</Link>
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <Pack>true</Pack>
    </Content>
  </ItemGroup>

内容文件将在构建期间复制到构建输出文件夹,就像任何其他内容文件一样。

VS 2017 15.9 支持此功能。 归功于 Georg Dangl 的博客文章: https : //blog.dangl.me/archive/accessing-nuget-package-paths-in-your-net-sdk-based-csproj-files/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM