c# - 从另一个 Nuget 包引用的 Nuget 包中复制内容文件
问题描述
我想从引用的 Nuget 包中获取一个文件到我的输出文件夹中。这些包是在 .NET Standard 项目上使用 Visual Studio 2017 生成的,并启用了新的 csproj 文件格式和“GeneratePackageOnBuild”。
例如,我有两个 Nuget 包(A 和 B),包 B 依赖于 A。包 A 包含一个内容文件,如配置文件。在这些包旁边,我有一个包含包 B 的应用程序。该应用程序使用包 A 和 B 中的内容,因此需要页面 A 中的文件。
NugetPackageA
|- ClassA.cs
|- RequiredFile.txt
NugetPackageB
|-Dependencies
|- Nuget
|- NugetPackageA
|- ClassB.cs
Application
|-Dependencies
|- Nuget
|- NugetPackageB
|- Program.cs
我所做的是启用项目文件中的文件打包(基于链接):
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<ItemGroup>
<Content Include="RequiredFile.txt">
<Pack>true</Pack>
<PackageCopyToOutput>true</PackageCopyToOutput>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<PackagePath>contentFiles\any\any\;content\any\any\</PackagePath>
</Content>
</ItemGroup>
</Project>
如果我打开 Nuget 包和 nuspec 文件,我会看到文件已正确打包并且属性似乎没问题:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>NugetPackageA</id>
...
<contentFiles>
<files include="any/any/RequiredFile.txt" buildAction="Content" copyToOutput="true" />
</contentFiles>
</metadata>
</package>
当 Application 直接依赖 NugetPackageA 时,该文件被正确添加到项目中并复制到输出目录。
所以现在我看到了这些解决方法;
- 直接添加 Nuget 引用
- 制作一个脚本,尝试在 $(NuGetPackageFolders) 中找到正确的包和版本并手动复制文件
- 将 NugetPackageB 更改为还包括 RequiredFile.txt
还有其他人对此有解决方案吗?
谢谢。
解决方案
推荐阅读
- excel - 如何将具有条件格式的表格视觉对象从 Power BI 导出到 Excel?
- performance - 为什么 z3 增量性能如此糟糕?
- python - 无法构建在不规则张量上循环的 Tesnorflow 自定义层
- python-3.x - 如何退出函数
- java - 有没有办法获取传递给方法调用的值?
- python - 你如何通过 TCP/IP 逐行发送 .txt 并有一定的延迟?
- docker - Gitlab-runner 无法访问另一个 VM 中的远程 docker 守护进程
- agora.io - Agora.io websdk 示例给出错误 ERR_DYNAMIC_USE_STATIC_KE
- git - 如何在 Visual Studio Code 上更新已保存的 git 凭据
- variables - 使用three.js TextGeomtery打印数组的值