包含 Nuget 内容文件以在 .net Core 项目上发布目标项目
Including Nuget Content Files to Target Projects Publish on .net Core Project
在我开始之前,我必须声明我对这个 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>
东西,但它们没有用。
我试过添加到 csproj 文件
它也没有用。
谁能帮帮我?
您可以使用 .nuspec 文件来配置所有依赖项。请参考https://docs.microsoft.com/en-us/nuget/reference/nuspec
你唯一需要做的就是将这个节点<PackageCopyToOutput>true</PackageCopyToOutput>
写入到nuget net core项目的每个内容文件中:
<ItemGroup>
<Content Include="Queries\Account\CheckAccountRef.sql">
<PackageCopyToOutput>true</PackageCopyToOutput>
</Content>
.....
</ItemGroup>
然后,用 dotnet pack
重新打包你的 nuget 项目,然后将这个新版本重新安装到你的主项目中。在安装之前,您应该删除 C:\Users\xxx\.nuget\packages
.
下的旧缓存
关于这个有。
在我开始之前,我必须声明我对这个 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>
东西,但它们没有用。
我试过添加到 csproj 文件
谁能帮帮我?
您可以使用 .nuspec 文件来配置所有依赖项。请参考https://docs.microsoft.com/en-us/nuget/reference/nuspec
你唯一需要做的就是将这个节点<PackageCopyToOutput>true</PackageCopyToOutput>
写入到nuget net core项目的每个内容文件中:
<ItemGroup>
<Content Include="Queries\Account\CheckAccountRef.sql">
<PackageCopyToOutput>true</PackageCopyToOutput>
</Content>
.....
</ItemGroup>
然后,用 dotnet pack
重新打包你的 nuget 项目,然后将这个新版本重新安装到你的主项目中。在安装之前,您应该删除 C:\Users\xxx\.nuget\packages
.
关于这个有