问题标签 [vspackage]

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 投票
2 回答
5042 浏览

visual-studio-2010 - 修改基础文件后,如何以编程方式刷新/重新加载 VS 项目?

我正在开发一个 Visual Studio 包,并且我编写了一些代码,这些代码将使解决方案资源管理器中的一个文件依赖于另一个文件。

这意味着它赋予它们与代码隐藏文件或设计器文件相同的关系,它们以加号/减号图标嵌套在父文件下。

我成功编写的代码正确地修改了基础项目文件,但是在项目关闭并重新打开之前,更改不会反映在解决方案资源管理器中。

我正在寻找一些将刷新或重新加载项目的代码,以便立即在解决方案资源管理器中看到更改。

更多信息...

这是演示我创建依赖文件的机制的 sudo 代码。

我也尝试添加它以尝试重新加载项目,但它没有任何效果。

0 投票
2 回答
981 浏览

msbuild - 通过 Visual Studio 扩展设置 MSBuild 'Condition' 属性

我有一个 C# 项目,它是用几种不同的配置构建的。某些源文件应始终包含在内,而某些源文件仅在某些配置中包含。到目前为止,我一直#if ... #endif在对整个文件进行此操作,但我希望创建一个小扩展来以更好的方式执行此操作。

我创建了一个扩展,将项目添加到文件的上下文菜单中,但我找不到任何方法来设置Condition项目文件中项目节点的属性。

我查看Properties了界面的集合EnvDTE.ProjectItem,但在那里看不到任何有用的东西(除了 BuildAction ......我会回到那个)。

然后我尝试IVsBuildPropertyStorage在该项目上获得一个并打电话给SetItemAttribute(). 这确实将信息添加到项目文件中,但作为这样的子元素:

当我试图实现的是:

还有一个IVsBuildPropertyStorage.SetPropertyValue()but 将类似的子元素添加到PropertyGroup靠近顶部的部分,而不是添加到 item 节点。

我看过'Project Subtypes/Flavors',但看起来它只会让我得到另一个 IVsBuildPropertyStorage,这似乎没有用。它们看起来确实能够处理很多复杂的事情,但有关该主题的文档似乎很少且含糊不清。

我看过一些描述如何使用 MSBuild 程序集直接加载和操作项目文件的帖子,但我不确定什么时候可以安全地这样做,而不会混淆 Visual Studio 并可能丢失更改,因为 VS 会在它提示重新加载时检测对项目文件的更改。

作为最后一个想法,我考虑过在和BuildAction之间操作属性,但这听起来我的扩展需要做很多工作才能正确维护,例如每次用户在 IDE 中切换配置时都要保持同步。CompileNone

有没有人对这种事情有任何经验可以给我任何建议,还是我应该放弃希望并坚持在#if任何地方手动添加指令?

0 投票
1 回答
218 浏览

visual-studio-2010 - Visual Studio 2010 Extensions - 类扩展特定类型时的自定义编辑器

我正在尝试创建一个 GUI 游戏设计器作为 Visual Studio 2010 的扩展,并且正在考虑使用与项目和项目模板一起使用的自定义编辑器在现有 XNA 项目类型之上构建此功能。

我研究了自定义编辑器并找到了有关如何为特定文件类型制作它们的各种教程,但我希望让它们依赖于类类型来实现,而不是像当前从 Control 或 UserControl 扩展的对象所发生的那样他们有设计师和查看代码的选项。

有没有人看过任何教程或示例,其中有人设法为自己的编辑器和类类型模仿此功能?

0 投票
0 回答
82 浏览

visual-studio-2010 - 如何使用插件获取开放解决方案的调用关系

我尝试为 VS 2010 开发一个 VSPackage,它研究当前解决方案中所有可用的方法,并重建每个方法的调用关系,就像 VS 的内置调用层次结构特性一样。

我设法通过使用 DTE 自动化对象从解决方案到其项目、项目类/类型和类成员(最重要的是它的方法)来获取解决方案中类型及其成员的所有可用名称,但是我无法重建通话关系。我没有找到任何可以为我提供帮助的 VS/VS SDK 服务。有什么提示吗?

提前致谢!

0 投票
1 回答
140 浏览

vspackage - 已部署的 VS 包未显示在包负载分析器中

我开发了一个 vspackage。要进行部署,我已按照 MSDN 演练中的步骤进行操作:部署 VSPackage。完成演练后,我的包没有出现在包负载分析器中,我的包也没有被初始化。

我猜我错过了一步,但我不知道是哪一步。我完全按照 MSDN 记录的那样做。这是 VS2008 的一个包,我也想将它用于 VS 2010,但首先我希望它在 VS 2008 中工作。

更新我在 MSDN 中使用了 MSI 步骤。现在我的包显示在 de 包负载分析器中,但问题仍然是我的包只有在我在负载分析器中分析我的包时才会被加载。

0 投票
4 回答
642 浏览

xaml - 使用 Graph# 库时出现 XamlParseException

我正在尝试在我的VSPackage项目中使用Graph#库,但不幸的是,有一些障碍需要克服。这是我所做的:

我将以下所有 DLL 复制到项目根目录中的文件夹 /Libraries 中:

  • GraphSharp.dll
  • GraphSharp.Controls.dll
  • QuickGraph.dll
  • WPFExtensions.dll

所有的构建操作都是“内容”,选项复制到输出设置为“不复制”。

我将这些引用添加到我的项目中。(添加参考... -> 浏览 -> 从 /Library 文件夹中选择它们)

之后,我创建了以下文件。您可以看到 ViewModel 设置为 UserControl 的 DataContext,并且它定义了 UI 绑定的“MethodGraph”。

XAML 文件

代码隐藏

视图模型

幸运的是,我可以编译整个项目,但在运行时 XAML 中的以下错误发生在标记上(在所需标记的正上方):

无法加载文件或程序集“GraphSharp.Controls,PublicKeyToken=null”或其依赖项之一。系统找不到文件。

但我引用了程序集,它们列在引用列表中。有什么问题?在编写Visual Studio 包(插件)时,是否必须以另一种方式引用程序集?

编辑:我只是试图让它在另一个项目中工作,所以我只是设置了一个普通的 WPF 应用程序并完成了上述所有操作。在此解决方案中,一切正常!这太奇怪了!

希望你能帮助我:-) 最好的问候!

0 投票
2 回答
5593 浏览

wpf - 绑定上的方法或操作未实现错误

我目前正在开发一个 Visual Studio 插件(VSPackage),它最终应该能够可视化调用关系。为了表示它们,我想使用管理图形的Graph# 库(避免重叠边等)。不幸的是,我在运行时在我的 XAML 中收到以下错误消息:

XamlParseException:方法或操作未实现。

<graph:CallRelationGraphLayout Graph="{Binding RelationGraph}"/>标签上弹出错误。

我还创建了自己的顶点、边和图形布局类。我的图表最终应该代表方法(顶点)之间的调用关系(边)。

方法顶点.cs

关系边缘.cs

CallRelationGraphLayout.cs

CallRelationGraph.cs

ExplorationToolViewModel我声明了 RelationGraph 如下:

我可能还应该提到的是,我有时会显示以下错误,但项目会编译并运行。

GenericArguments[1], 'Biocoder.InteractiveExploration.Graph.RelationEdge', on 'GraphSharp.Algorithms.Layout.ILayoutAlgorithm`3[TVertex,TEdge,TGraph]' 违反了 'TEdge' 类型的约束。

也许它是问题的根源,但自从它编译以来我忽略了它,我按照本教程做了它。

奇怪的是,它实际上在使用 Graph# 提供的 DLL 的普通 WPF 应用程序中工作。当我离开 Graph 属性时,错误不会出现,所以我猜它与 Graph 属性有关。关于如何解决这个问题的任何提示?

非常感谢您!

0 投票
0 回答
583 浏览

visual-studio-2010 - 如何从 Visual Studio 解决方案中获取所有接口类型?

我正在尝试编写 Visual Studio 的扩展。

我需要获取在当前打开的解决方案中的所有项目中找到的所有接口类型的列表。
到目前为止,我已经尝试使用 EnvDev 命名空间来执行此操作。

有没有办法在不解析项目的 .cs 文件的情况下做到这一点?

谢谢,

柴。

0 投票
1 回答
1467 浏览

c# - 如何在 vspackage 中获取当前的解决方案配置?

我正在制作 Visual Studio 包,我需要知道打开的解决方案名称和配置。我怎样才能得到这些信息?

谢谢

0 投票
1 回答
1294 浏览

c# - 我如何获得构建/重建实时输出

我正在制作 Visual Studio 包,我在其中启动 devenv.exe 并尝试构建其他解决方案。我需要实时构建输出,以便用户可以看到构建进度(输出),但我不知道该怎么做如果可能的话。

我试过这样的方式:

并且rebuildLog 有输出。

有人可以帮忙吗?