【问题标题】:How to make a dialog appear when Visual Studio is started. - VS Extension如何在 Visual Studio 启动时显示一个对话框。 - VS 扩展
【发布时间】:2013-02-28 20:01:12
【问题描述】:

我正在构建一个 Visual Studio 扩展,但我不知道如何在启动 Visual Studio 时显示一个对话框。

它的主要用途是当 Visual Studio 启动时,我的扩展程序将检查更新,如果发现更新,则会出现一个对话框。

关于扩展的信息非常稀少,所以我不知道该怎么做。我正在使用 C#。

编辑:我尝试将包含所有命令代码/回调的包文件中的代码添加到它的初始化事件中,它会在 Visual Studio 似乎已经加载之前显示对话框,并且在我关闭之前不会继续加载它。不过我觉得我越来越近了。

它们是我可以在 VSCT 文件中创建的扩展启动命令吗,有点像菜单项?

【问题讨论】:

  • Visual Studio 已经具有检测更新扩展的机制。为什么它对您的需求没有用处?
  • 因为仅当扩展程序位于 MS 库中时才有效,有时您不希望/不需要库中的扩展程序(即某种形式的内部公司工具,在您的外部没有用处)生产环境),我认为您无法让 VS 获取通过 .vmx 文件安装的扩展的更新。
  • 感谢 Psytronic,你是对的。

标签: c# visual-studio-2010 visual-studio-addins visual-studio-extensions


【解决方案1】:

我能够找出我的问题。由于缺乏信息,它需要大量的试验和错误。我最初尝试了 OnStartupcomplete() 事件,但它对我不起作用,因此我来到了这里。它不工作的原因是因为当时没有初始化 DTE 对象。所以我能够创建对象并添加处理程序。

[ProvideAutoLoad(Microsoft.VisualStudio.Shell.Interop.UIContextGuids.NoSolution)]
[ProvideAutoLoad(VSConstants.UICONTEXT.SolutionExists_string)]

 protected override void Initialize()
    {
       //DTE gets called
        var dte = (EnvDTE.DTE)GetService(typeof(EnvDTE.DTE));
        _EventsObj = dte.Events.DTEEvents;
        _EventsObj.OnStartupComplete += OnStartupComplete;

    }

        public void OnStartupComplete()
    {
        //This is the code to launch the dialog.


        EvaluationDialog EvalForm = new EvaluationDialog();
        EvalForm.ShowDialog();

    }

【讨论】:

  • 您可以接受自己的答案,因此在这种情况下这样做是正确的。
  • 我正计划这样做。不过,我必须等待 24 小时。不过谢谢。
【解决方案2】:

我假设您使用的是 Visual Studio 插件项目。如果您只需要一个消息框,请在 Connect.cs 文件中添加对 System.Windows.Forms 的引用和 using 语句:

using System.Windows.Forms;

OnConnection 方法中:

public void OnConnection(object application, 
    ext_ConnectMode connectMode, 
    object addInInst, ref Array custom)
{
    MessageBox.Show("message box");

    // or you could use your on dialog class
    var myDialog=new MyDialog();
    myDialog.Show();

    // ...
}

【讨论】:

    【解决方案3】:

    我们正在使用 OnAfterOpenProject。您可以检查更新并在找到时弹出对话框。

    【讨论】:

      猜你喜欢
      • 2021-04-22
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 2012-07-11
      • 2011-04-03
      相关资源
      最近更新 更多