标签: vsix

如何调试Visual Studio扩展

我只是为Visual Studio 2010编写VSIX扩展,无法弄清楚如何调试它.

一种显而易见的方法是输出消息.扩展模板使用Trace.WriteLine().但在哪里可以找到它的输出?

debugging visual-studio vsix visual-studio-extensions

91
推荐指数
2
解决办法
3万
查看次数

如何卸载.vsix Visual Studio Extensions?

我目前正在尝试为Visual Studio Express 2013安装XNA Game Studio.我在实际安装XNA框架之前意外地运行了.vsix程序.

安装它并重新运行.vsix之后,我收到一条消息错误,指出已经安装了扩展.这不是假的.

我已经尝试了很多东西来"删除"空的扩展:进入%LocalAppData%\ Microsoft\VisualStudio并试图找到扩展名,但发现自己没有任何东西,例如.

我想知道如何正确卸载并重新安装框架.

xna uninstall vsix visual-studio-2013

66
推荐指数
5
解决办法
5万
查看次数

在visual studio中安装了自定义扩展?

Visual Studio中安装的自定义扩展在哪里?我知道你可以获得路径ExtensionManager.GetInstalledExtensions(),但似乎没有找到的路径对应于我的扩展.

vsx vs-extensibility vsix visual-studio-extensions

40
推荐指数
1
解决办法
2万
查看次数

将project.json包引用添加到VSIX

在尝试添加对VSIX的引用时,它通常会从.csproj中的引用中提取它.但是,如果引用不在.csproj中,因为它们现在位于project.json文件中,那么它们不会被拉到vsix.然后解决方案可以编译,但是当安装到Visual Studio中时,扩展会因"找不到文件"错误而失败(因为未复制到VSIX的程序集).

我尝试使用清单的部分,如下所示:

<Asset Type="Microsoft.VisualStudio.Assembly" d:Source="Project" d:ProjectName="*PROJECTNAME*" Path="|*ASSEMBLYNAME*|" AssemblyName="|*ASSEMBLYNAME*;AssemblyName|" />
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为它无法识别包引用.

经过一些研究后,我看到了与PCL类似的问题,但是,没有答案而且问题类型不同:MEF With Portable Class library using Microsoft Composition MEF2抛出文件未找到异常

在同一个注释中,这似乎是一个可接受的解决方法:VSIX与项目模板和NuGet包,但据我所知,它意味着在安装过程中使用该包.除此之外,它不适用于我们的情况,因为他们需要指定包版本,我们正在使用project.json,所以我们可以使用浮动版本(即:2.0.*)

有没有办法引用这个project.json引用我们缺少的?也许是一种解决方法?我发现的解决方案似乎都需要在某处"粘贴"de DLL,对于浮动版本来说并不方便.

提前感谢任何帮助或输入.

编辑/更新:由于VSIX会自动推送CSPROJ中引用的任何程序集(而不是项目本身),因此尝试在项目级别获取DLL似乎不太可能.经过多次尝试,我认为有效的解决方法是从输出文件夹中获取程序集.但是,据我所知,VSIX没有办法做到这一点,还是做到了?

c# vsix vsixmanifest visual-studio-2015 project.json

38
推荐指数
1
解决办法
844
查看次数

Visual Studio不安装.vsix文件

我遇到的问题是我安装了VS 2012和VS 2013,当我下载VSIX-File并使用Visual Studio版本选择器打开它时,VS会打开文件,但不是安装它VS而是打开文件,就像它是一个未知二进制格式.

附图显示了如何打开VSIX文件(每个文件都会发生......这只是一个例子):

在此输入图像描述

visual-studio vsix visual-studio-2012 visual-studio-2013

29
推荐指数
2
解决办法
3万
查看次数

Visual Studio 2013可扩展性VSIX项目模板在哪里

这两篇文章都讨论了如何为VS2013开发扩展,但两者都假定您有一个可用的扩展项目类型

截至2013年11月9日,画廊中已有544个 VS2013 扩展,所以我猜它有可能,但我无法在任何地方找到模板.

vsix visual-studio-2013

28
推荐指数
1
解决办法
1万
查看次数

无法找到扩展名.请确保已安装扩展程序

我一直在研究VS扩展,使用SideWaffle创建一些带有一些锅炉代码的文件,我遇到了一个问题,每当我添加一个新项目时,我的boilercode项目将在"我的自定义模板"下.我在template-builder.props文件中找到了这个并将其更新为"Test",但是当我再次尝试时,我同时拥有"我的自定义模板"和"测试",两者都包含相同的扩展名.

我想VS可能已经缓存了旧名称,所以我从VS卸载了扩展并重新启动.现在该项目根本不会构建并给出错误:

Extension 'ProjName..00000000-0000-0000-0000-000000000000' could not be found.
Please make sure the extension has been installed.
Run Code Online (Sandbox Code Playgroud)

我尝试使用Debug文件夹中的.vsix重新安装扩展并重新启动VS,但是我得到了同样的错误).我在网上找不到任何关于此的信息,说实话,我很困惑为什么项目需要自己安装才能构建.

我该怎么做才能让这个项目再次建成?

visual-studio vsix visual-studio-extensions sidewaffle

24
推荐指数
2
解决办法
3562
查看次数

vsixmanifest for all:VS 2010,2012和2013

我在VS2013下使用VSIX Manifest Designer.我添加了Microsoft.VisualStudio.Pro产品标识符和[10.0,13.0]版本范围来安装目标.尽管如此,我仍然没有看到我的VS2010 Professional作为可用的安装目标:

在此输入图像描述

source.extension.vsixmanifest文件内容如下所示:

<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
  <Metadata>
    <Identity Id="ae98c9e5-8e14-4c92-b45a-c4fd24a49123" Version="1.0" Language="en-US" Publisher="whosoever" />
    <DisplayName>MyExtension</DisplayName>
    <Description xml:space="preserve">whosoever</Description>
    <MoreInfo>http://www.myextension.com</MoreInfo>
    <License>LICENSE.txt</License>
    <Icon>icon.png</Icon>
    <PreviewImage>screenshot.png</PreviewImage>
  </Metadata>
  <Installation InstalledByMsi="false">
    <InstallationTarget Version="[10.0,13.0)" Id="Microsoft.VisualStudio.Pro" />
  </Installation>
  <Dependencies>
    <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="4.5" />
    <Dependency Id="Microsoft.VisualStudio.MPF.11.0" DisplayName="Visual Studio MPF 11.0" d:Source="Installed" Version="11.0" />
  </Dependencies>
  <Assets>
    <Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
  </Assets>
</PackageManifest>
Run Code Online (Sandbox Code Playgroud)

应该更改什么才能将此扩展安装到VS2010,2012和2013?

manifest visual-studio vsix vsixmanifest

21
推荐指数
1
解决办法
1万
查看次数

我如何:Visual Studio语法突出显示扩展

我想为VS2010开发一个扩展,这将允许我为语法突出显示一些额外的功能.

我安装了SDK,我该怎么做?

请给我一些小片段(或代码链接),我可以看到如何开始.

注意:我是否必须检查整个代码块,或者SDK告诉我每个单词是什么,如何声明等等?

mef syntax-highlighting visual-studio-2010 vsix

20
推荐指数
1
解决办法
8380
查看次数

从扩展程序在Visual Studio Designer中的windows.forms.controls上绘制装饰

我编写了一个观察Windows.Forms设计器窗口的Visual Studio 2013扩展.当开发人员在设计器窗口中更改控件时,扩展会尝试验证结果是否与我们的ui样式指南一致.如果发现可能的违规,它们将列在工具窗口中.一切正常.但是现在我想在设计器窗口中标记不一致的控件,例如使用红框或类似的东西.

不幸的是,我没有找到在设计器窗口中绘制控件装饰的方法.我知道如果你开发自己的装饰品,你可以画出那些装饰品ControlDesigner,但我需要从控制设计师的"外部"开始.我只有IDesignerHost来自Dte2.ActiveWindow并且可以通过该主机访问Controls和ControlDesigners.我找不到任何方法来从ControlDesigners的"外部"添加装饰品.我现在的解决方法是捕获控件的Paint-Events并尝试从那里绘制我的装饰品.这对于所有控件(即ComboBox等)都不适用,因为并非所有控件都允许您使用它们.所以我不得不使用他们的父控件的Paint事件.此解决方案还有其他缺点.

我希望有人可以告诉我是否有更好的方法.我敢肯定,必须有一个:如果您使用菜单 - >查看 - > Tab键顺序(不知道正确的英文菜单标题,我使用的是德国IDE),您可以看到IDE本身能够装饰控件(没有截图,因为它是我在SO上的第一篇文章),我确信它不会像我一样使用解决方法.它是如何做到的?

我几周来一直在谷歌上搜索.感谢您的帮助,建议,研究起点......

更新:

也许这个截图有点清晰:

截图选项卡顺序

从View菜单中选择Tab顺序时,Visual Studio显示的是蓝色编号的插入符号.我的问题是如何通过IDE完成这项工作.

如上所述,我试图Paint在控件的情况下执行此操作,但例如ComboBox实际上不支持该事件.如果我使用父项的Paint事件,我只能在子控件周围绘制,因为它们是在父项之后绘制的.

我还想过在控件或ControlDesigners 上使用反射,但我不确定如何挂钩受保护的OnPaintAdornments方法.我不认为IDE开发人员使用那些"肮脏"的技巧.

c# wpf windows-forms-designer visual-studio vsix

18
推荐指数
2
解决办法
1220
查看次数