问题标签 [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.
t4 - 使用 T4 模板生成 ViewModel
在我看来,这听起来是一个绝妙的主意。使用 EnvDTE 也可以做到这一点,那么为什么没有更多可用的示例呢?
也许我错过了这样做的缺点......?
任何指向良好 T4 和 EnvDTE 资源的指针都会很棒。:)
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() 函数只是将字符串写入以当前时间戳为前缀的文件:
visual-studio-2010 - dte.Solution.SolutionBuild.StartupProjects 更改时是否触发了事件?
我正在构建一个 Visual Studio 2010 插件供我公司内部使用。我想自定义主窗口标题以显示当前启动项目的名称。我可以使用以下代码设置主窗口的标题:
每当创建或激活窗口时,我都可以触发此代码,但如果用户更改解决方案资源管理器(或我的加载项)中的启动项目并且不会移动到 Visual Studio 中的另一个窗口,这不会更新标题。我希望在进行更改后立即更新标题。
visual-studio - 在 EnvDTE 的 Debugger.GetExpression 方法中,“UseAutoExpandRules”究竟是什么意思?
文档尖锐地解释说,这个参数应该是“如果应该使用自动扩展规则,则为 true;否则为 false。”,但它到底是什么意思?
我似乎在网上找不到任何解释。
c# - 使用 DTE 构建/重建项目 VS 2008
如何使用 DTE.ExecuteCommand 构建和重建项目 csproj?
DTE 的所有命令的任何参考?
对于解决方案,我使用这个:
我尝试使用这个:
但我收到错误:“命令 \"Build.BuildOnlyProject\" 不可用。”
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 对象,因为我可以显示原始值。
c# - EnvDTE.Expression - 以编程方式获取 DataMembers 的内部名称
假设我有 C# 代码行:
var myList = 新列表 {1,2,3};
然后我将“myList”放在监视窗口中,然后将列表的第一项向下拖动,监视窗口将创建一个包含该数据成员内部名称的新行,在这种情况下为
(新 System.Collections.Generic.Mscorlib_CollectionDebugView(myList)).Items[0]
我的问题是,有没有办法以编程方式从 EnvDTE 的 Expression 的 DataMember 中获取这个内部名称?
非常感谢!
c# - 在 Visual C# 2010 中获取 DTE2 对象的引用
我想获得对当前解决方案的引用,在 Visual Studio 2010 中使用带有 C# 的 DTE2 对象。
我首先尝试了以下代码:
但是当我打开 2 个解决方案并且此代码在第一个解决方案中时,我得到的不是对当前解决方案的引用,而是对我加载的最后一个解决方案的引用。我需要当前的解决方案...
在互联网上搜索,我在如何从 VSPackage 中获取当前解决方案目录中找到了以下解决方案?:
但是当我使用它时,我的 dte 对象始终为 NULL。
那么如何在 .net 框架 4.0 上使用 C# 在 VS2010 中获取我当前的解决方案对象?
visual-studio - EnvDTE CodeClass.AddDelegate 重载
我想创建 2 个名称相同但参数不同的委托(重载委托)。当我尝试添加委托时,由于委托已经存在,我在第二次尝试时遇到错误。我尝试先使用临时名称添加它,然后添加参数,然后更改名称,以便签名会有所不同,但我仍然收到错误消息,指出已存在具有该名称的项目。
如何添加重载委托?
c# - 防止在添加时打开新文件
我正在做一个 GAX 项目,并且我有一个将文件夹中的所有文件添加到新的“解决方案项目”文件夹的操作。这用于在项目根目录中插入所需的文件作为 Local.testsettings 等。
我的问题是,当我添加文件时,它会立即打开。对于 .txt 文件或类似文件,还不错。对于 .testsettings 文件,它会打开一个阻止所有进程的模式窗口。
我能做些什么来防止这种打开?我不能在 ProjectItem.Document 上使用 .close,因为在 mySolution.ProjectItems.AddFromFile(file) 语句之后没有执行代码。
如果您知道任何防止文件在添加时打开的方法(无论是手动添加还是通过代码添加),我想知道。
如所要求的,完整的代码是:
非常感谢!