簡體   English   中英

如何在 dotnet 包 nuget package 中包含來自構建 output (dacpac) 的非 dll 文件?

[英]How do I include a non-dll file from build output (dacpac) in a dotnet pack nuget package?

我目前有一個 .NET 標准 2.0 庫,它是針對 sql 數據庫的存儲庫。 對於該特定數據庫,我在同一解決方案中也有一個 .sqlproj 項目。 使用 2.2 cli 上的 dotnet pack 命令,從我們的構建服務器 (Azure DevOps) 構建、打包並推送存儲庫庫到我們的 nuget 存儲庫。 我想將數據庫項目中的 dacpac 作為存儲庫 nuget package 的一部分包含在內,以便 package 的消費者發布的版本可以部署更改。 我計划確保被覆蓋的版本晚於部署的 package 版本。

我可以使用構建前目標將 dacpac 文件添加到存儲庫項目的構建 output

<Target Name="mydb" AfterTargets="Build"> <Exec Command="XCOPY /Y /R..\db\bin\$(ConfigurationName)\mydb.dacpac $(TargetDir)" /> </Target>

我當前的問題是,雖然文件復制,但它不包含在dotnet pack repository.csproj生成的 nuget 文件中

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM