代码之家  ›  专栏  ›  技术社区  ›  user007

NetCore项目直接在项目根级别下显示nuget包中的托管DLL

  •  1
  • user007  · 技术社区  · 8 年前

    我已经创建了包含第三方DLL的Nuget包。 (针对netstandard2.0和net462)

    “lib”下的级别是MyLib。dll。

    如果我在net462项目中使用nuget包,那么所有的外观和工作都很好。 dll在项目中不可见,将复制到输出目录(由于.targets文件)。

    所有DLL(其中12个)将在项目根目录下的VS中可见。 所以我的计划。cs文件最终位于dll地狱的中间。

    无法修改源自导入文件的计算对象。目标。

    有没有办法从Visual Studio项目中隐藏我的Nuget包附带的第三方DLL?

    .目标文件是堆栈溢出的代码段:

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <ItemGroup>
        <NativeLibs Include="$(MSBuildThisFileDirectory)**\*.*" Exclude="$(MSBuildThisFileDirectory)**\*.targets" />
        <None Include="@(NativeLibs)">
          <Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
          <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
      </ItemGroup>
    </Project>
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Martin Ullrich    8 年前

    您可以设置 Visible 元数据到 false 要告诉VS不要在解决方案资源管理器中显示该项目,请执行以下操作:

    <None Include="…">
      …
      <Visible>false</Visible>
    </None>
    

    看见 Common MSBuild Project Items 有关元数据属性的文档。