【发布时间】:2016-05-19 05:54:38
【问题描述】:
我有一个作为类库创建的项目。该库包含许多可在 Windows 窗体应用程序中使用的控件。现在我想创建一个安装包 (*.vsix),它将这些控件嵌入到 Visual Studio 工具箱窗口中。我也有一个项目,里面装满了 Web 控件,但此时我想专注于任务的 Win 控件部分。
当我在包含该项目的解决方案中时,这些控件在工具箱窗口中可见。
我创建了一个 vsix 项目并将组件项目的 dll 引用为 Microsoft.VisualStudio.Assembly 资产。构建过程会创建我需要的 vsix 文件。当我在安装了全新 VS 的系统上运行它时,它会顺利完成安装过程,但组件不会出现在工具箱中。
当我尝试将资产注册为 Microsoft.VisualStudio.ToolboxControl 时,我收到错误 'The target "PkgdefProjectOutputGroup" does not exist in the project.'。我在谷歌上找到的信息对我没有帮助。
我不确定这里有什么问题。我可能错过了几个步骤,但我不知道具体是什么。
我还找到了有关创建软件包的 WiX 工具集的文章,但我不确定这是否是我正在寻找的东西。
编辑:我发现是什么给了我'The target "PkgdefProjectOutputGroup" does not exist in the project.' 消息,是我没有在资产窗口中为“嵌入此文件夹”文本框提供值。构建过程,但组件在 VS 中仍然不可见。
编辑 2:经过几天的修补,我仍然无法为控件创建包。我使用this 文章作为我的主要参考资料以及其他一些文章,但似乎没有任何作用。
我尝试使用作为示例提供的 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 中找到了安装位置(最后一部分可能是随机生成的),所有文件都在它们应该在的位置,工具箱中仍然没有控件(从这个位置手动添加它们也可以)。
【问题讨论】:
标签: c# visual-studio-2012