NuGet软件包中具有Visible =“ false”的子目录中的所有项目都不会显示子目录文件夹

时间:2019-06-12 19:43:08

标签: nuget nuget-package

我想将数据文件(例如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,但我不确定。

我也可能会以完全错误的方式来解决这个问题,如果可以的话,我愿意接受任何可能性。

0 个答案:

没有答案