visual-studio - 将 Nuget 内容文件包含到目标项目中 在 .net Core 项目上发布
问题描述
在我开始之前,我必须说明我对这个 nuget 包的东西很陌生,所以对我来说是基本的。
我的应用程序有一个核心项目来承载一些 .dll 和 .sql 文件和一个 api 项目。我已将核心项目制作为带有dotnet pack的 nuget 包,并在 github 操作上将其自动化,因此它会在所有 prs 处创建一个新版本并将其推送到我的私人 nuget 服务器,直到这里一切都很好。
当我将此核心包安装到我的 api 项目时,也没有问题。它安装成功,我的 sql 文件按我的预期显示在目标项目上(但作为链接源)。
但是当我尝试使用 dotnet pack 发布这个项目时,.sql 文件不会复制到输出文件夹。我查看了文件的属性,发现它们复制到输出目录的道具已被重置为不复制,并且文件路径是绝对的。
我的目标是使用 github 操作构建和部署此 api,因此绝对路径是不可接受的,此外我不想在目标项目中手动安排某些内容。
我正在用 dotnet pack 打包核心项目我没有
- .nuspec 文件
- 包配置xml
- nuget 配置
- 包元数据
或其他类似的东西,我不知道如何使用它们。
我试过添加到 csproj 文件<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
和<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
东西,但它们没有用。
谁能帮我?
解决方案
您唯一需要做的就是将此节点写入<PackageCopyToOutput>true</PackageCopyToOutput>
nuget net core 项目的每个内容文件:
<ItemGroup>
<Content Include="Queries\Account\CheckAccountRef.sql">
<PackageCopyToOutput>true</PackageCopyToOutput>
</Content>
.....
</ItemGroup>
然后,重新打包您的 nuget 项目,dotnet pack
然后将这个新版本重新安装到您的主项目中。在安装之前,您应该删除C:\Users\xxx\.nuget\packages
.
有一个类似的问题。
推荐阅读
- r - 有一个自举数据对象,但希望每次试验的观察总和而不是 rstudio 中的整体聚合
- ios - Alamofire multipart 仅上传一张图片 ios
- azure-keyvault - 从部署在 VNET 中的 Azure 容器实例访问 KeyVault
- r - R中三点之间的插值
- scala - ReactiveMongo 使用 MongoConnectionOptions 连接
- regex - 具有多个过滤器的正则表达式
- azure - 使用 Azure API 管理的异步 IP 受限逻辑应用在调用重试 url 时出现授权错误
- kotlin - Sequence 实际上比 Iterable 更通用,还是更通用?
- android - 由于 Linux 权限错误,Android 设备模拟器失败
- docker - 在带有参数的 docker 容器中运行“apk add”命令