我想从引用的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
我所做的是在项目文件中启用文件打包(基于link):
<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>
当应用程序直接依赖于NugetPackageA时,文件已正确添加到项目中并复制到输出目录。
所以现在我看到了这些解决方法;
还有其他人对此有解决方案吗?
谢谢。