VSIX项目切换为PackageReference后依赖包输出未包含到安装包问题咨询
问题根因
切换为PackageReference格式后,NuGet包的传递依赖输出不再包含在你当前配置的原有输出组中,需要新增专门的输出组捕获这部分内容。
解决方案
你只需在IncludeOutputGroupsInVSIX的属性值里追加%3bReferenceCopyLocalPathsProjectOutputGroup即可,修改后的完整配置如下:
<ProjectReference Include="....csproj"> <Project>{8da36305-5468-465a-bf37-d87936b776d2}</Project> <Name>ProjectName</Name> <VSIXSubPath>SubDirectory</VSIXSubPath> <IncludeOutputGroupsInVSIX>BuiltProjectOutputGroup%3bBuiltProjectOutputGroupDependencies%3bGetCopyToOutputDirectoryItems%3bSatelliteDllsProjectOutputGroup%3bDocumentationProjectOutputGroup%3bReferenceCopyLocalPathsProjectOutputGroup%3b</IncludeOutputGroupsInVSIX> <IncludeOutputGroupsInVSIXLocalOnly>DebugSymbolsProjectOutputGroup%3b</IncludeOutputGroupsInVSIXLocalOnly> </ProjectReference>
补充说明
ReferenceCopyLocalPathsProjectOutputGroup是使用PackageReference的SDK风格项目专门用来导出所有需要复制到输出目录的引用项的输出组,包含你通过PackageReference安装的NuGet包的生成输出内容- 如果你需要包含NuGet包里定义的内容文件,还可以额外追加
%3bContentFilesProjectOutputGroup到上述属性中,确保对应内容项也能被打包到VSIX里 - 修改完成后清理解决方案,重新生成VSIX项目即可验证效果
内容的提问来源于stack exchange,提问作者TWT
相关产品推荐
相关产品推荐

