【发布时间】:2019-12-18 07:35:48
【问题描述】:
我的解决方案使用多个 NuGet 包从多个项目创建一个 Visual Studio 包。
在项目文件中使用 PackageReference(而不是旧的 packages.config 文件)指定所有 Nuget 包。我正在使用 Visual Studio 2019。
我遇到了一个问题,即 NuGet 包引用的 DLL 未包含在 VSIX 安装中。
this article by Daniel Cazzulino 中描述了此问题的解决方案,方法是在项目文件中添加以下代码:
<PropertyGroup>
<GetVsixSourceItemsDependsOn>$(GetVsixSourceItemsDependsOn);IncludeNuGetResolvedAssets</GetVsixSourceItemsDependsOn>
</PropertyGroup>
<Target Name="IncludeNuGetResolvedAssets" DependsOnTargets="ResolveNuGetPackageAssets">
<ItemGroup>
<VSIXCopyLocalReferenceSourceItem Include="@(ReferenceCopyLocalPaths)" />
</ItemGroup>
</Target>
这确实有效,但它将安装的大小从大约 20MB 扩大到大约 40MB。
现在安装包含很多 PDB 文件,我真的不需要。
更重要的是,它引入了大约 46MB 的 Visual Studio DLL,这是不必要的,因为它们是 Visual Studio 的一部分。
有没有更好的方法来确保引用的 NuGet 包包含在 VSIX 中,而不用这些其他文件夸大安装?
【问题讨论】:
标签: visual-studio msbuild nuget visual-studio-extensions