繁体   English   中英

包括 Nuget 内容文件到目标项目 在 .net 核心项目上发布

[英]Including Nuget Content Files to Target Projects Publish on .net Core Project

在我开始之前我必须 state 我对这个 nuget package 东西很新,所以对我来说基本。

我的应用程序有一个核心项目来承载一些.dll 和.sql 文件和一个 api 项目。 I have made the core project a nuget package with dotnet pack and automated it on github action so it creates a new version at all prs and pushes it to my private nuget server and it is all fine till here.

当我将这个核心 package 安装到我的 api 项目中时,也没有问题。 它安装成功,我的 sql 文件按我的预期显示在目标项目上(但作为链接源)。

sql文件链接源

但是当我尝试使用 dotnet 包发布此项目时,.sql 文件不会复制到 output 文件夹中。 我查看了文件的属性,发现它们复制到 output 目录属性已重置为不复制,并且文件路径是绝对的。

在此处输入图像描述

我的目标是使用 github 操作构建和部署此 api,因此绝对路径是不可接受的,此外我不想在目标项目中手动安排某些内容。

我正在用 dotnet pack 打包核心项目我没有

  • .nuspec 文件
  • package 配置 xml
  • nuget 配置
  • package 元数据

或其他类似的东西,我不知道如何使用它们。

我尝试向 csproj 文件中添加<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies><RestoreProjectStyle>PackageReference</RestoreProjectStyle>东西,但它们没有用。

我尝试添加到 csproj 文件在此处输入图像描述 它也没有用。

谁能帮我?

您可以使用 .nuspec 文件来配置所有依赖项。 请参考https://docs.microsoft.com/en-us/nuget/reference/nuspec

您唯一需要做的就是将此节点<PackageCopyToOutput>true</PackageCopyToOutput>写入 nuget 网络核心项目的每个内容文件:

<ItemGroup>
<Content Include="Queries\Account\CheckAccountRef.sql">
<PackageCopyToOutput>true</PackageCopyToOutput>
</Content>

.....
</ItemGroup>

然后,使用dotnet pack重新打包您的 nuget 项目,然后将这个新版本重新安装到您的主项目中。 在安装之前,您应该删除C:\Users\xxx\.nuget\packages下的旧缓存。

一个类似的问题

暂无
暂无

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

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