问题标签 [vssdk]
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.
azure-devops - 防止模式对话框关闭 - VSTS
当单击左上角的“x”按钮时,我想防止模式对话框关闭。
我怎样才能做到这一点?
visual-studio - Visual Studio Extension 修改 Go to All 搜索结果?
是否可以创建一个扩展来修改 Visual Studio 2017 的“转到所有”搜索结果中显示的内容?我想构建一个扩展,让用户(在工具-> 选项...中)为应该从该搜索中排除的路径定义任意数量的全局模式。如果可能的话,有人能指出我使用哪些 API 的正确方向吗?
该扩展可以使用 glob 指示 VS 过滤搜索的位置,或者它可以接收结果并在显示之前删除不需要的位置 - 取决于可用的 API。
例如,当您使用将 js 编译为其他文件夹的 typescript 项目时,这将很有用,但您只想搜索 ts 文件,或者如果您正在使用一些复制 html 文件的框架,则甚至更多从您对它们进行编码的位置到运行应用程序时它们需要位于的位置。
unit-testing - 如何对导入 VSS SDK 组件的文件进行单元测试 - 找不到 VSS 模块
我正在尝试以ALM-Rangers/Countdown-Widget-Extension为例,将单元测试添加到我自己的 VSS SDK Web 扩展中。
我能够下载并运行测试,但是当我尝试将其应用于我自己的项目(Microsoft/vsts-team-calendar 的一个分支)时,运行时出现错误tsc ./tests/TestSpec.ts
:
src/Calendar/Utils/TestDate.ts(1,29):错误 TS2307:找不到模块“VSS/Utils/Date”。
测试规范.ts:
测试日期.ts:
webpack 模块规则:
tsconfig.json:
文件结构:
以下是 vss-extension.json 的一些潜在相关部分。不能说我理解这部分:
更多来自 webpack 配置:
visual-studio-2015 - 如何在 Visual Studio 扩展中处理特定文件类型的加载
我在 zip 文件中有一个 Visual Studio 解决方案,我的计划是解压缩该文件,然后加载该解决方案。是否可以使用 Visual Studio API 执行此操作?
我的第一个想法是实现IVsProjectFactory和IVsProjectUpgradeViaFactory以在CreateProject / UpgradeProject方法中解压缩解决方案,然后加载它。
解压缩有效,但是当我尝试使用IVsSolution.OpenSolutionFile()或DTE.Solution.Open()(在 CreateProject/UpgradeProject 方法内)加载解决方案文件时,它会因 ArgumentException 而失败。
这个问题有什么解决办法吗?理想情况下,它的行为应该就像打开一个普通的 VS 解决方案(从 Windows 资源管理器打开,或在 Visual Studio 中打开 Ctrl+o/Ctrl+Shift+o)。
编辑 我已经设法通过实现与我的文件扩展名相关联的IVsEditorFactory使其工作。当打开具有该扩展名的文件时,会调用CreateEditorInstance方法,在此我解压缩文件,然后使用 IVsSolution.OpenSolutionFile() 打开解决方案。
不幸的是,这不允许我通过 File->Open->Project/Solution 打开文件,而只能通过 File->Open->File 打开文件。此外,打开文件时显示的对话框标题为“打开文件”而不是“打开解决方案”或类似名称。
这个解决方案感觉有点像黑客,但直到现在我找不到另一种方法。我仍然愿意寻求更好的解决方案。
c++ - VCLinkerTool.GenerateDebugInformation 属性不支持 DEBUG:FULL 和 DEBUG:FASTLINK
我正在使用 VS SDK 设置 VS C++ 项目文件的项目属性。我想设置 C++ 链接器属性调试信息。以下似乎是我必须设置的必需属性: VCLinkerTool.GenerateDebugInformation
但是,如您所见,这是一个布尔属性。但是调试信息允许 VS 设置 4 个值:
- 不
- 调试
- 调试全
- 快速链接
我想设置 Debug Full,但无法这样做,因为 VCLinkerTool.GenerateDebugInformation 不接受字符串值。任何人都知道任何其他方式来实现这一目标?
typescript - 如何让 vss sdk 树视图默认折叠?
如何获得类型的组合控件TreeView.ComboTreeBehaviorName
以使其节点默认折叠?
我试过查看文档here和here,但这对我来说似乎完全没有帮助。
我还尝试检查类型(在 vss.d.ts 中)以查看是否有可以设置的属性:
- 我发现
maxAutoExpandDropWidth
which 声称 itSpecifies the max size when auto-expand drop bigger than combo
,但将其设置为 0 或 1 似乎没有任何效果。 - 我发现
dropOptions?: IComboDropOptions;
但它似乎也没有任何展开/折叠的属性。 - 我尝试向
collapsed: true
IComboOptions添加一个属性 - 该
Controls.Enhancement.enhance
方法的签名似乎表明我可以将一些选项作为type
属性的一部分传递给IComboOptions
,但我尝试过但不能这样做,因为该type
属性需要一个字符串,而不是一个对象。 node.expanded = false
在将树传递给source
属性之前为所有节点设置
以下是一些相关的代码摘录:
...
c# - 使用通过 Intellisense 生成代码的 MSBuild 任务的正确方法
语境
对于某些项目,我们一直在尝试直接从 Visual Studio 进行代码生成。基本思想是您可以创建一堆 ( .foo
) 文件,每个 ( .foo
) 文件对应一个生成的 ( .foo.cs
) 文件。
基本上,该过程的工作原理如下:
- 在构建期间,将收集所有 .foo 文件。
- 发生了一些转变。请注意,某些转换需要来自所有 .foo 文件的信息。
- 对于每个
.foo
文件,.foo.cs
都会发出一个带有部分类的文件。
通常我会为此创建一个文件生成器(自定义工具) - 但是,在这种情况下,我想知道文件名始终是.foo.cs
,并且似乎没有办法可以从单个文件生成器。此外,构建需要来自多个文件的信息这一事实使我选择了另一种方法。
因此,我创建了一个 MS Build Task,并在 csproj 中注册了它:
从代码生成工作的意义上说,这工作得很好,这会生成所有必需的.cs
文件。
请注意,如果 Intellisense 在我单击“构建”之前不起作用 - 那很好。
情况
现在的问题是.foo.cs
文件的 Intellisense 已损坏,我正在寻找解决此问题的方法。
我试图通过.csproj
更多地更改文件来解决这个问题:
这似乎可行,因为文件现在显示在 Visual Studio 的解决方案资源管理器中。
但是,我不知道如何自动创建它,也找不到任何文档或有关它的示例。我猜这与构建适当的 VSTemplate 有关吗?
问题
解决此问题的正确方法是什么?例如,如何确保生成的文件显示在 Visual Studio 中,以便 Intellisense 可以提取它们?
visual-studio - 在 Visual Studio 扩展中获取 IVsBuildPropertyStorage2 实例
我正在开发一个 Visual Studio 扩展,我需要在.csproj文件中设置一些 msbuild 属性。该IVsBuildPropertyStorage
接口可以设置属性,但不支持未计算的值,例如$(Configuration)
. 所以,我想获得一个IVsBuildPropertyStorage2
实例,但我不知道如何获得它。
有人可以帮助我吗?
visual-studio - VS2017,VSIX:刚刚创建的 AsyncPackage 没有被实例化
这是默认的 VSPackage。我只添加了 ProvideAutoLoad 属性。
看起来它没有被实例化。如果我要添加断点或 Debug.WriteLine(...) 那么什么都不会发生。当我添加命令时,什么也没有。我只能在扩展和更新窗口中看到我的扩展。
我录制了这个小视频,一步一步重现了我的问题: https ://youtu.be/B2T311Ug5FQ
我应该对我的包裹做些什么?
c# - 如何检查我的 VS 2017 扩展中的工具窗口是否隐藏
我正在为 Visual Studio 2017 开发一个扩展,其中包含自定义“工具窗口”。此“工具窗口”包含WPF control
订阅view model
了Workspace.WorkspaceChanged和EnvDTE.DTE.Events.WindowEvents.WindowActivated事件。
我知道当用户关闭“工具窗口”时,它实际上并没有被破坏,而是“隐藏”。但是,它仍然对我的事件做出反应。
所以,我想知道两个问题的答案:
- 如何检查工具窗口是否隐藏?
- 我可以“关闭”工具窗口以便将其销毁吗?
编辑:创建工具窗口的代码: