我想将数据文件(例如txt文件)添加到包内子目录中的自定义NuGet包中,并将其保存到输出目录中。
首先,我将这些数据文件保存在contentFiles中,并保存到输出目录中,但是它们却显示在Visual Studio的解决方案资源管理器中,我们不希望这样。
然后我将数据文件放入子目录文件夹中的build文件夹中,并使用目标文件将它们保存到输出目录并设置Visible =“ false”,除了包含子目录之外,此方法效果很好在解决方案资源管理器中,不是实际文件,而是子目录。然后,我尝试将它们放到build文件夹中的本机文件夹中,但最终还是一样。
这是我的nuspec文件
<metadata>
<id>MyPackage</id>
<version>1.0.0</version>
<title></title>
<authors>Me</authors>
<owners>Me</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Description</description>
<copyright>Copyright 2019</copyright>
</metadata>
<files>
<file src="build\native\sub1\data.txt" target="build\native\sub2\data.txt" />
<file src="build\native\sub2\data.txt" target="build\native\sub2\data.txt" />
<-- bunch of other files -->
</files>
这是我的目标文件
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)*.dll" Visible="false">
<Link>%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)native/**" Visible="false">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
我希望它隐藏有关NuGet软件包的所有内容并将其保存在输出目录中,但是“ data1”和“ data2”文件夹显示在我的解决方案资源管理器中,但为空,因此我知道目标文件正在命中它们。
据此,如果我没看错,可能是一个错误https://github.com/dotnet/project-system/issues/1126,但我不确定。
我也可能会以完全错误的方式来解决这个问题,如果可以的话,我愿意接受任何可能性。