标签: visual-studio-extensions

NuGet 包和扩展之间的区别

在“工具”菜单下的 Visual Studio 中,“NuGet 包管理器”->“管理解决方案的 NuGet 包...”和“扩展和更新...”之间有什么区别?

visual-studio nuget-package visual-studio-extensions

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

如何在Visual Studio 2017 sdk中拦截项目保存事件?

是否可以在 Visual Studio 2017 sdk 中拦截项目保存事件?

更新

我目前正在开发 Visual Studio 2017 的扩展,我需要知道何时保留任何更改。

例如:当我在项目中添加新引用时(我知道添加/更改/删除引用但不满足我的需要时会发生事件),该项目被标记为待保存。我需要在保存时拦截它(如果在保存之前拦截就更好了)。

我尝试了该Dte.Events.DocumentEvents.DocumentSaved事件,但在保存项目中没有触发;DTE.Events.SolutionEventsDTE.Events.SolutionItemEvents没有我需要的类型的事件。

有可能的?

visual-studio-sdk visual-studio-extensions visual-studio-2017

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

从 IWpfTextView 获取非 cs 文件的文档路径

我想在VS的文本编辑器中添加一些按钮。在创建 ViewPort 管理器时的 ViewPortTextViewCreationListener 中,我想知道文档或其路径

public void TextViewCreated(IWpfTextView textView) {
    var result = _textDocumentFactoryService.TryGetTextDocument(TextView.TextBuffer, out ITextDocument textDocument);
    new ViewPortSwitcher(textView);
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用从 TextBufferITextDocumentFactoryService获取(请参阅此处的答案)。如果我打开 cs 文件,它可以正常工作。但如果我打开 cshtml 文件 TryGetTextDocument 返回 false。ITextDocument

c# visual-studio vs-extensibility visual-studio-extensions

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

如何识别每天创建大型 Visual Studio 扩展文件的程序

我的 C 盘空间有问题。我发现大型 (~300 [MB]) Visual Studio 扩展 (vsix) 文件每天(完全在同一时间)登陆 C:\Windows\Temp,有时每天多次登陆。我不是在创造这些。我能够删除现有的,为我争取一些时间。但是,我想确定正在创建这些东西的程序/脚本,以便我可以将其关闭。我该怎么办?

visual-studio-extensions

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

将鼠标悬停在文本上时显示工具提示

我想创建扩展,当我将鼠标悬停在文本上时,该扩展允许显示自定义消息。

例如,“test-text”应该给出工具提示“OK”,而不是当前的“ITrackin...”

我试图遵循https://learn.microsoft.com/en-us/visualstudio/extensibility/walkthrough-displaying-quickinfo-tooltips?view=vs-2019 但人们说它不起作用,而且还有很长的路要走做这个。

我找不到更多关于此的文档。我知道如何在单击窗口中显示它/获取当前选定的文本。 在此输入图像描述

visual-studio vsix visual-studio-extensions

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

Visual Studio 扩展中的 app.config?

我创建了一个代表 Visual Studio 项目向导(vsix 包)的 Visual Studio 扩展。我正在尝试连接 log4net,但没有成功。我已将问题归结为 app.config 未正确加载。

我已将其添加到我的 Visual Studio 扩展中的 app.config 中:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="test" value="hello world"/>
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

在我的 IWizard 实现中,我添加了这行代码:

var test = System.Configuration.ConfigurationManager.AppSettings["test"];
Run Code Online (Sandbox Code Playgroud)

然而,test调试时上面的变量始终为空。

我已经验证了这些事情:

  • App.config 设置为“构建操作:内容”
  • App.config 设置为复制到输出目录:始终复制
  • App.config 设置为“包含在 VSIX 中:True”
  • App.config 文件存在于我的C:\Users\<user>\AppData\Local\Microsoft\VisualStudio\16.0_...\Extensions\<Name>\<Company>\1.0文件夹中

我缺少什么?如果 VSIX 扩展开发中不允许使用 App.config,那么您将如何连接 log4net?

vsix visual-studio-extensions

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

在 C# VSIX 中,如何获取当前文件名及其当前正在编辑的相对路径?

我正在开发一个 VSIX 项目,我想获取正在 VS IDE(或实验窗口)中编辑的当前文件名和路径(相对于该项目)?我怎样才能做到这一点?

我尝试了以下代码:

var currentDocInfo = this._textDocumentFactoryService.TryGetTextDocument(this.view.TextBuffer, out this.TextDocument);            

if (currentDocInfo)
{
    string test = this.TextDocument.FilePath;
    MessageBox.Show(test);
}
else
{
    //MessageBox.Show("Nothingg!");
}
Run Code Online (Sandbox Code Playgroud)

此代码返回当前打开文件的绝对路径。我需要获取相对于当前项目/解决方案的路径。如果我能够获得解决方案的名称,我将找到该项目的相对路径。

如果我添加代码:System.IO.Path.GetDirectoryName(dte.Solution.FullName); 它将返回我的 TextAdornment 类(一个类,通过安装整个插件来管理编辑器任务,这里我正在编写 dte.ActiveDocument.FullName; 代码)的路径详细信息。但我想要在我的实验窗口中打开的文件的文件详细信息。

c# extensibility visual-studio vsix visual-studio-extensions

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

在 Visual Studio 扩展中实现“导航到定义”(Ctrl+单击)

我正在编写一个 Visual Studio 扩展,我想为我自己的文件类型实现 Ctrl + 单击命令。这类似于 C#/C++ 编辑器,其中 Ctrl + 单击类型名称会将用户带到该类型的定义(也称为“转到定义”命令。)

有关于如何实现这一目标的示例吗?我在 Microsoft Docs 网站上搜索,但找不到任何我想要的内容。

visual-studio go-to-definition visual-studio-extensions

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

如何将命令添加到ADO.NET实体数据模型设计器的上下文菜单中?

基本上,我需要Visual Studio包项目文件中的正确值guidid属性.vsct,如:

<Group guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0600">
  <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
</Group>
Run Code Online (Sandbox Code Playgroud)

以上内容直接来自默认项目模板,并向Tools主菜单添加命令.我在哪里可以找到(或我如何嗅探)ADO.NET实体数据模型设计器上下文菜单的guid:id值,具有"从数据库更新模型......"等等?

在您提出问题之前:VS 2010实体设计器中的MEF可扩展性选项不包括我的场景 - 我需要实现一个命令来在独立和FK映射关联之间进行转换.

visual-studio-2010 ado.net-entity-data-model vspackage visual-studio-extensions

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

Visual Studio扩展包中未触发DebuggerEvents.OnEnterBreakMode

我写了一个visual studio扩展包,它订阅了DebuggerEvents.OnEnterBreakMode事件.但是这个事件永远不会被提升.

这是一些代码:

protected override void Initialize()
    {
        base.Initialize();

        applicationObject = (DTE2) GetService(typeof (DTE));

        applicationObject.Events.BuildEvents.OnBuildDone += BuildEventsOnOnBuildDone;
        applicationObject.Events.DebuggerEvents.OnEnterBreakMode += DebuggerEventsOnOnEnterBreakMode;
    }
Run Code Online (Sandbox Code Playgroud)

但方法DebuggerEventsOnOnEnterBreakMode永远不会被调用.BuildEventsOnOnBuildDone调用方法.

为什么会这样?

c# visual-studio visual-studio-debugging visual-studio-extensions

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