VSIX包不包含引用项目的依赖项

时间:2012-08-24 13:15:19

标签: visual-studio-2010 vsx vsix vspackage

我们有一个Visual Studio包(VS Package),它引用了一个类库项目(Project A)。项目A又引用另一个类库项目(项目B)。

所以依赖结构如下所示:VS Package>项目A> B项目

所有项目都存在于同一解决方案中,并且依赖项已设置为正确的项目引用。

如果我在visual studio中构建软件包并查看bin / Debug文件夹,那么所有必需的程序集都包括项目B' s。但是,在部署程序包时,只存在项目A的程序集,并且缺少项目B。我如何告诉visual studio将Project B的间接依赖包含在包中?

This MSDN文档建议"默认情况下,在多项目解决方案中,如果输出到VSIX包的项目包含对同一解决方案中另一个项目的引用,则它包含该项的依赖项。项目"

然而,我发现事实并非如此。

我的问题与this one非常相似,只是我遇到了主项目组件而不是本地化卫星组件的问题。这篇文章中的答案对我不起作用,因为它似乎只适用于卫星装配。

我是否可以指定其他一些输出组来指导包以包含间接依赖项?

感谢您的光临。

2 个答案:

答案 0 :(得分:3)

在这种特殊情况下最简单的方法是从VSPackage项目引用Project B并将“Reference Output Assembly”属性设置为False以避免引入编译时依赖项。

答案 1 :(得分:1)

我遇到了类似的问题:我的 VS Package 项目引用了另一个VS包项目(〜 Project A ),后者又引用了一堆其他项目(〜项目B )包含我们扩展的肉。

受此回答的启发:VSIX package doesn't include localized resources of referenced assembly,我将“BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;GetCopyToOutputDirectoryItems;SatelliteDllsProjectOutputGroup”添加到 VS Package 项目A的引用的Output Groups Included in VSIX属性中

这具有删除我的 VS Project ...\Debug\文件夹中的所有依赖项DLL的效果,但它们仍未包含在VSIX中。

最后,我将BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;GetCopyToOutputDirectoryItems;SatelliteDllsProjectOutputGroup标志添加到我的 Project A 到我的每个 Project Bs 的所有引用中 - 然后它们都被包含在VSIX。

(顺便说一句,这与Visual Studio 2013有关,但自2010年以来似乎没有太大变化)

相关问题