问题标签 [envdte]

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 回答
1785 浏览

t4 - 使用 T4 模板生成 ViewModel

在我看来,这听起来是一个绝妙的主意。使用 EnvDTE 也可以做到这一点,那么为什么没有更多可用的示例呢?

也许我错过了这样做的缺点......?

任何指向良好 T4 和 EnvDTE 资源的指针都会很棒。:)

0 投票
0 回答
438 浏览

visual-studio - Visual Studio 宏 - 记录解决方案打开、关闭、构建等的时间戳

我有一个需要一段时间才能打开的解决方案。(5 分钟)由于我们的流程和程序,我经常在同一解决方案的不同分支之间来回切换。我每天多次关闭和加载同一解决方案的不同变体。这超过了 15 分钟 - 仅仅浪费了 30 分钟等待我的 Visual Studio。我将过时的计算机硬件归咎于罪魁祸首。我想捕获解决方案加载时间以及构建时间的指标。我的目标是将这些指标呈现给管理层。

我正在使用 Visual Studio 宏来跟踪此信息。

就目前而言,我正在记录这三个事件 EnvDTE.SolutionEvents.BeforeClosing、EnvDTE.SolutionEvents.AfterClosing、EnvDTE.SolutionEvents.Opened 的时间戳。

问题是,SolutionEvents.Opened 在整个解决方案加载后触发。我需要从开始加载解决方案到完成时生成时间戳。

如何知道 Visual Studio 何时开始加载解决方案?这样我就可以将其与完成加载时进行比较。

下面是我的代码(我的 LogWithTimeStamp() 函数只是将字符串写入以当前时间戳为前缀的文件:

0 投票
1 回答
742 浏览

visual-studio-2010 - dte.Solution.SolutionBuild.StartupProjects 更改时是否触发了事件?

我正在构建一个 Visual Studio 2010 插件供我公司内部使用。我想自定义主窗口标题以显示当前启动项目的名称。我可以使用以下代码设置主窗口的标题:

每当创建或激活窗口时,我都可以触发此代码,但如果用户更改解决方案资源管理器(或我的加载项)中的启动项目并且不会移动到 Visual Studio 中的另一个窗口,这不会更新标题。我希望在进行更改后立即更新标题。

0 投票
1 回答
428 浏览

visual-studio - 在 EnvDTE 的 Debugger.GetExpression 方法中,“UseAutoExpandRules”究竟是什么意思?

文档尖锐地解释说,这个参数应该是“如果应该使用自动扩展规则,则为 true;否则为 false。”,但它到底是什么意思?

我似乎在网上找不到任何解释。

0 投票
2 回答
1892 浏览

c# - 使用 DTE 构建/重建项目 VS 2008

如何使用 DTE.ExecuteCommand 构建和重建项目 csproj?

DTE 的所有命令的任何参考?

对于解决方案,我使用这个:

我尝试使用这个:

但我收到错误:“命令 \"Build.BuildOnlyProject\" 不可用。”

0 投票
1 回答
1739 浏览

properties - 使用 EnvDTE.Property.set_Value 设置 ProjectItem FullPath 属性时出现问题

我有一个 Visual Studio 项目向导,它尝试配置 VC# 项目以覆盖模板中选定文件的 FullPath 属性。

以下代码在函数内部使用

public void ProjectFinishedGenerating(项目项目)

System.Reflection.TargetParameterCountException:参数数量无效。(来自 HRESULT 的异常:0x8002000E (DISP_E_BADPARAMCOUNT))在 EnvDTE.Property.set_Value(Object lppvReturn)

我知道我有一个有效的 ProjectItem 对象,因为我可以显示原始值。

0 投票
2 回答
480 浏览

c# - EnvDTE.Expression - 以编程方式获取 DataMembers 的内部名称

假设我有 C# 代码行:

var myList = 新列表 {1,2,3};

然后我将“myList”放在监视窗口中,然后将列表的第一项向下拖动,监视窗口将创建一个包含该数据成员内部名称的新行,在这种情况下为

(新 System.Collections.Generic.Mscorlib_CollectionDebugView(myList)).Items[0]

我的问题是,有没有办法以编程方式从 EnvDTE 的 Expression 的 DataMember 中获取这个内部名称?

非常感谢!

0 投票
5 回答
9677 浏览

c# - 在 Visual C# 2010 中获取 DTE2 对象的引用

我想获得对当前解决方案的引用,在 Visual Studio 2010 中使用带有 C# 的 DTE2 对象。

我首先尝试了以下代码:

但是当我打开 2 个解决方案并且此代码在第一个解决方案中时,我得到的不是对当前解决方案的引用,而是对我加载的最后一个解决方案的引用。我需要当前的解决方案...

在互联网上搜索,我在如何从 VSPackage 中获取当前解决方案目录中找到了以下解决方案?

但是当我使用它时,我的 dte 对象始终为 NULL。

那么如何在 .net 框架 4.0 上使用 C# 在 VS2010 中获取我当前的解决方案对象?

0 投票
1 回答
109 浏览

visual-studio - EnvDTE CodeClass.AddDelegate 重载

我想创建 2 个名称相同但参数不同的委托(重载委托)。当我尝试添加委托时,由于委托已经存在,我在第二次尝试时遇到错误。我尝试先使用临时名称添加它,然后添加参数,然后更改名称,以便签名会有所不同,但我仍然收到错误消息,指出已存在具有该名称的项目。

如何添加重载委托?

0 投票
1 回答
344 浏览

c# - 防止在添加时打开新文件

我正在做一个 GAX 项目,并且我有一个将文件夹中的所有文件添加到新的“解决方案项目”文件夹的操作。这用于在项目根目录中插入所需的文件作为 Local.testsettings 等。

我的问题是,当我添加文件时,它会立即打开。对于 .txt 文件或类似文件,还不错。对于 .testsettings 文件,它会打开一个阻止所有进程的模式窗口。

我能做些什么来防止这种打开?我不能在 ProjectItem.Document 上使用 .close,因为在 mySolution.ProjectItems.AddFromFile(file) 语句之后没有执行代码。

如果您知道任何防止文件在添加时打开的方法(无论是手动添加还是通过代码添加),我想知道。

如所要求的,完整的代码是:

非常感谢!