问题标签 [vsixmanifest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
180 浏览

visual-studio-2015 - Msi Installer blocked by vsixinstaller error "1009": InstallByMsiException

I have a Wix installer to install my visual studio extension (vsix) + related files. However, when I tick the "This VSIX is installed by Windows Installer" cheeckbox in the vsixmanifest under "Install Targets" (this adds the attribute "InstalledByMsi" to the tag and sets its value to "true") the installer exits and I find the following error in the log:

A quick google shows me that error 1009 from VSIXInstaller.exe is called InstallByMsiException.

It works absolutely fine with this checkbox unticked, but it means that visual studio allows users to uninstall the extension via the extensions manager, which won't include the files outside the vsix or the registry entries created by the windows installer.

Is there some setting somewhere I've missed? What can I look for?

0 投票
2 回答
1892 浏览

visual-studio-extensions - 将 VS Extension 从 2015 更新到 2017 (VSIX v3) 使包无效

我有一个较旧的扩展,我想在 VS 2017 中工作。为了能够做到这一点,我知道我将不得不使用新的 VSIX Manifest v3。该扩展在 2015 Update 3 中运行良好。为了更新它,我做了以下工作:

  1. 在 VS2017 中打开扩展源。提示我进行一次性升级,已成功完成
  2. 使用 NuGet 将 Microsot VSSDK BuildTools 从 14.x 更新到 15.x
  3. 将 Prerequisite 块添加到包含 Microsoft.VisualStudio.Component.CoreEditor 的 source.extension.vsixmanifest 文件
  4. 更新安装目标以支持新的 Visual Studio,就像这样

    <InstallationTarget Version="[15.0,16.0)" Id="Microsoft.VisualStudio.Enterprise" />

构建成功,但是一旦我在调试文件夹中打开 vsix 文件,就会收到一条消息告诉我

The file is not a valid VSIX package

如果我使用 WinRAR 打开文件,我可以看到这两个强制文件catalog.json,并且manifest.json不存在,因为它们应该是新的 v3 格式。

我在这里想念什么?

0 投票
1 回答
311 浏览

visual-studio - 启用某种语言的 VSIX 扩展?

有没有一种方法可以检测当前的编程语言并禁用基于该语言的扩展?

我正在创建一个仅在 C++ 构建中兼容的 VSIX 包。我可以以编程方式检测当前的编程语言并响应不支持的语言而不打开我的对话框,但我觉得应该有一个属性或其他东西可以启用/禁用某种语言的扩展。

0 投票
0 回答
133 浏览

visual-studio - vsixmanifest 将 v1.0 迁移到 v2.0

我在 VS2010 中使用了 1.0 版的 vsix 清单,我想将其迁移到 2.0 版的 vsix 清单。

1.0 版看起来像:

2.0 版看起来像:

我尝试通过在比 2010 更新的 VisualStudio 版本中加载它来进行迁移。但是 vsix 文件没有迁移到更新的格式。如果我用 vsix 清单编辑器打开它,它只显示 xml 源代码。

有没有办法自动迁移 vsix 清单文件?

我还在互联网上搜索了有关 1.0 版和 2.0 版中 xml 标签的更多描述,但我找不到任何有用的信息。您知道某处的任何信息,以便我可以手动进行迁移吗?

谢谢亲切的问候,汤姆

0 投票
2 回答
562 浏览

vsix - Vsix 安装程序在 Visual Studio 2017 (15.3) 中失败

我在安装自行编写的 Visual Studio 扩展时遇到以下错误,该扩展在以前版本的 Visual Studio 2017 中肯定有效。

此扩展不可安装在任何当前安装的产品上

日志的相关摘录如下:

我希望看到更多这样的东西

0 投票
0 回答
57 浏览

visual-studio - 是否可以以 Visual Studio 扩展安装程序在安装后运行管理任务的方式创建 VSIX?

我有一个开箱即用的现有 Visual Studio 扩展。

但是,一些第 3 方代码要求在特定位置(在 Visual Studio IDE 目录中)创建一个文件夹,以允许扩展用户根据需要调整一些东西。

扩展程序将尝试创建此文件夹,但当然 IDE 文件夹应受权限限制。

我可以创建一个自定义 EXE,该扩展在首次启动时启动,并指定它在提升的权限下执行此操作,然后此 EXE 可以创建所需的文件夹。但这似乎是错误的,并且不符合扩展的精神。

因此,我想知道,我可以在我的 VSIX 项目中做些什么来让 VSIX 安装程序负责创建文件夹吗?

0 投票
1 回答
217 浏览

visual-studio-extensions - 在不增加版本的情况下更新 VSIX 扩展

我正在开发一个 VSIX 扩展,我想进行一些更改并在非实验实例中对其进行测试,而不会影响扩展版本。第一次安装的时候可以选择要安装到的实例,但是第二次双击的时候,并不表示可以在任何地方安装,大概是因为版本号还没有更新。有什么办法可以强制安装吗?

0 投票
2 回答
436 浏览

azure-pipelines - VSTS 的自定义构建任务 - 在一个 VSIX 中打包多个任务?

是否可以在一个 VSIX 文件中“捆绑”多个自定义 VSTS 构建任务。

我可以看到为每个任务创建一个扩展是最佳实践(单一责任和全部),但有可能吗?

如果是这样,一个示例清单,以及指向这样做的人的链接将非常感激。

我想要的文件结构是。如果必须,每个任务切换到一个 vsix 将非常容易。

谢谢!

0 投票
1 回答
2383 浏览

visual-studio-2017 - Visual Studio 2017 - VSIX 包在更新 NuGet 包后停止工作

重现步骤:

  1. 打开 Visual Studio 2017。选择文件..新建..项目..
  2. 从“新建项目”对话框中,选择“扩展性.. VSIX 项目..
  3. 从解决方案资源管理器中选择新项目。右键单击并添加.. 新项目.. 可扩展性.. 自定义命令..
  4. 您现在拥有从标准模板构建的完整自定义命令。在调试器中运行它。您将获得 Visual Studio 的实验性实例。从菜单中,选择工具...调用 Command1...您的自定义命令有效!
  5. 点击“确定”并退出 Visual Studio 的实验实例。
  6. 现在,回到原始解决方案,单击工具.. NuGet 包管理器.. 管理解决方案的 NuGet 包...
  7. 在更新选项卡中,您将看到模板中包含的标准包的许多更新。全部选择并更新它们。重复,直到您的所有软件包都已更新。在此过程中,您可能需要重新启动 VS。
  8. 再次构建您的 VSIX 包。您可能必须取消围绕此语句的警告:

    /li>
  9. 再次调试 VSIX 包。

  10. 选择工具...调用命令 1...
  11. 您收到错误消息:“Command1Package”包未正确加载。 在此处输入图像描述
  12. 如果按照 %AppData% 目录的说明阅读活动日志,您将看到无法加载 Microsoft.VisualStudio.Threading 15.8.0.0 程序集。

    无法加载文件或程序集“Microsoft.VisualStudio.Threading, Version=15.8.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.VisualStudio.Threading,版本=15.8.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。

0 投票
1 回答
632 浏览

vsix - Visual Studio 自定义模板类别有一个额外的文件夹

我创建了一个 ItemTemplate 项目。我想将其安装到自定义文件夹。当我手动将从项目构建的 zip 文件添加到 ItemTemplates 中的命名文件夹时,这可以正常工作。

我现在使用两个项目,原始的 ItemTemplate 项目和一个 VSIX 项目进行安装。

我面临的问题是,当使用 VSIX 项目安装模板时,安装路径会在我的自定义文件夹中添加一个名为 CSharp 的额外文件夹。仅当我将 ItemTemplate 项目作为项目添加到 VSIX 项目时才会发生这种情况。如果我将 ItemTemplates 项目的输出(zip 文件)添加到 VSIX 项目,则模板位于正确的位置。

这是它目前的样子 这是它目前的样子


这就是我想要的样子。 在此处输入图像描述


已使用 vsixmanifest 中的 Assets 部分将 ItemTemplate 项目添加为 VSIX 项目中的参考项目。下图中的属性是 VSIX 项目的引用部分中 ItemTemplate 项目的属性。 VSIX 设置


如果有帮助,这是我在 ItemTemplate 项目中使用的 vstemplate 文件。

我正在使用 VS2017 (15.7.4) 任何帮助表示感谢,谢谢。