C# 从类库创建vsix包

C# 从类库创建vsix包,c#,visual-studio-2012,C#,Visual Studio 2012,我有一个创建为类库的项目。此库包含许多可在windows窗体应用程序中使用的控件。现在,我想创建一个安装包(*.vsix),将这些控件嵌入到visual studio工具箱窗口中。我也有一个项目,其中充满了Web控件,但在这一刻,我想集中精力在Win控件部分的任务 当我在包含此项目的解决方案中时,这些控件在工具箱窗口中可见 我创建了一个vsix项目,并将组件项目的dll作为Microsoft.VisualStudio.Assembly资产引用。构建过程创建我需要的vsix文件。当我在一个新安装了

我有一个创建为类库的项目。此库包含许多可在windows窗体应用程序中使用的控件。现在,我想创建一个安装包(*.vsix),将这些控件嵌入到visual studio工具箱窗口中。我也有一个项目,其中充满了Web控件,但在这一刻,我想集中精力在Win控件部分的任务

当我在包含此项目的解决方案中时,这些控件在工具箱窗口中可见

我创建了一个vsix项目,并将组件项目的dll作为
Microsoft.VisualStudio.Assembly
资产引用。构建过程创建我需要的vsix文件。当我在一个新安装了VS的系统上运行它时,它会顺利完成安装过程,但是组件不会显示在工具箱中

当我尝试将资产注册为Microsoft.VisualStudio.ToolboxControl时,出现错误
“目标”PkgdefProjectOutputGroup“在项目中不存在”。
。我在谷歌上找到的信息对我没有帮助

我不确定这里有什么问题。我可能错过了一些步骤,但我不知道具体是什么

我还发现了一些关于WiX工具集创建包的文章,但我不确定这是否是我要找的东西

编辑:我发现项目中不存在目标“PkgdefProjectOutputGroup”的
原因。
消息,是我没有为资产窗口中的“嵌入此文件夹”文本框提供值。构建过程,但组件在VS中仍然不可见

编辑2:经过几天的修补,我仍然无法为控件创建包。我把这篇文章和其他一些文章一起作为我的主要参考,但似乎并没有任何效果

我尝试使用作为示例提供的TCI安装程序应用程序。我第一次在样本控件上使用它,它工作得完美无缺,但在我自己的库中使用它却没有产生任何结果。我在自己的库中添加了一个示例控件,只是为了检查我是否会发疯,但该控件仍然没有显示在工具箱中。我添加的控件再简单不过了:

[ToolboxBitmap(typeof(IdiotControl))]
[ToolboxItem(true)]
public partial class IdiotControl : UserControl
{
    public IdiotControl()
    {
        InitializeComponent();
    }
}
同样,当我想手动添加dll中的控件时(右键单击工具箱选项卡->选择项->浏览dll),会显示控件,我可以将它们拖放到表单中,但我不接受这种情况


我还在
C:\Users\John\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\doeehng3.0ko
中找到了安装位置(最后一部分可能是随机生成的),所有文件都在应该的位置,但工具箱中仍然没有控件(从该位置手动添加它们也可以正常工作)。

,最后,我能够解决在为Visual C++的VSIX项目添加DLL应用程序引用时出现的以下错误:

项目中不存在目标“PkgdefProjectOutputGroup”。

只需打开DLL应用程序的项目文件
.csproj
.vcxproj
,将其添加为VSIX项目的参考,并在最后编辑以下行:

Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft.VsSDK.Cpp.targets" Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft.VsSDK.Cpp.Overrides.targets 导入项目=“$(MSBuildExtensionPath)\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft.VSSDK.Cpp.targets” 导入项目=“$(VCTargetsPath)\Microsoft.Cpp.targets” Import Project=“$(MSBuildExtensionPath)\Microsoft\VisualStudio\v15.0\VSSDK\Microsoft.VSSDK.Cpp.Overrides.targets 然后构建VSIX项目,应该解决此错误