我创建了包含第三方dll的Nuget包 . (它的目标是netstandard2.0和net462)
这些dll与“MyLib.targets”文件一起位于nuget包中的“build”级别 .
在“lib”级别下是MyLib.dll .
如果我使用nuget包与net462项目所有外观和工作正常 . dll在项目中不可见,将被复制到输出目录(由于.targets文件) .
如果我创建NetCore2.0项目并使用我的包,它工作正常,dll被复制到输出目录,但所有dll(其中12个)将在项目的根目录下的VS中可见 . 所以我的Program.cs文件最终在dll地狱的中间 .
如果我尝试删除它们,我会收到消息:无法修改源自导入文件的评估对象.... .targets .
有没有办法隐藏Visual Studio项目中我的Nuget包附带的第三方dll?
.targets文件是堆栈溢出的片段:
<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 回答
您可以将
Visible
元数据设置为false
,告诉VS不在解决方案资源管理器中显示该项:有关元数据属性的文档,请参阅Common MSBuild Project Items .