jjzjj

c# - 生成枚举的 JavaScript 表示

我的代码中有一些[Flags]枚举,我想在不复制和粘贴的情况下向JavaScript公开。SignalR似乎通过将URL映射到返回反射生成的JavaScriptstub的Action来为其Hub代理做类似的事情。由于代码是在运行时生成的,因此似乎不可能包含在Bundle中。作为替代方案,我实现了一个T4模板以在设计时生成一个js文件:Enums={:{values=newDictionary();foreach(CodeElementchildinenu.Members){CodeVariablevalue=childasCodeVariable;if(value!=null){str

c# - 以编程方式创建 Visual Studio 项目

正如我的问题所说,我想创建一个基于模板的新项目,该模板已经创建了一个经过测试并且工作正常,但是当我尝试使用C#代码(在mvc3项目中)执行此操作时遇到了两个问题。EnvDTE80、EnvDTE90和EnvDTE100之间有哪些区别,因为我尝试做thisexample使用EnvDTE100但它不起作用,因为对象处理它是Solution4而不是Solution2并且Solution4没有相同的行为。如何在不使用默认路径的情况下创建项目,而是使用我需要的特定文件夹更新如果我使用名为EnvDTE80的dll,这是有效的代码System.Typetype=System.Type.GetTypeF

c# - 通过nuget包添加代码分析规则集

我正在尝试构建一个自动添加我们公司的代码分析字典并可更新的NuGet包。规则集添加到content文件夹中,现在我想使用install.ps1脚本将规则集添加到项目文件中。我想出了使用envDTE的方法,但是除了这个我找不到CodeAnalysisRuleset节点的压倒性对象图之外,我找不到太多关于它的有用文档。http://msdn.microsoft.com/en-us/library/za2b25t3(v=vs.100).aspx我走的路对吗?有没有关于如何在NuGetpowershell中使用envDTE的相关教程/文档?如何运行/调试我的安装脚本,而不必将其实际添加到包中并

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

我想获得对当前解决方案的引用,在VisualStudio2010中使用DTE2对象和C#。我首先尝试了以下代码:vardte=Marshal.GetActiveObject("VisualStudio.DTE.10.0")asEnvDTE80.DTE2;但是当我打开2个解决方案并且此代码在第一个解决方案中时,我得到的不是对当前解决方案的引用,而是对我加载的最后一个解决方案的引用。我需要当前的解决方案...在网上搜索,在HowdoyougetthecurrentsolutiondirectoryfromaVSPackage?中找到了以下解决方案://Getaninstanceofthec

c# - Visual Studio 项目创建事件

我想在用户在VisualStudio2010\2012中创建项目\解决方案时添加功能。即我需要在创建新项目时执行C#代码。我在谷歌上搜索了很多,但没有找到任何在项目创建后触发的事件。有什么办法吗? 最佳答案 经过一些研究并感谢@JoeSteele提到的文章,我成功地连接了CommandEvents.AfterExecute事件,负责项目创建:DTEapplication=this.GetService(typeof(SDTE))asDTE;stringguidVSStd97="{5efc7975-14bc-11cf-9b2b-00a

c# - 使用 T4/EnvDTE 获取所有用特定属性修饰的方法

我想获取项目中使用T4/EnvDTE使用MyAttribute修饰的所有公共(public)方法的列表。我知道这可以通过反射来完成,但我不想加载程序集并在T4模板中反射它,相反,我想使用现有的代码文件作为源。以下是我在互联网上找到的引用当前项目的样板代码 最佳答案 我想确认您使用EnvDTE获取有关项目类和方法的设计时信息的计划。在我看来,这比冒险反射(reflect)同一项目的过时程序集更可靠。由于您已经获得了解决方案的当前项目,因此您现在应该使用VisualStudioCodeModel迭代您的类及其方法等。我知道这可能很烦人,

c# - 如何通过文件名查找 ProjectItem

我正在为VisualStudio开发自定义工具。该工具被分配给文件,在文件更改时我收到该文件的名称并且应该在项目中生成一些更改。我需要通过收到的文件名找到一个ProjectItem。我只找到了一个解决方案,它枚举了解决方案的每个项目中的所有项目项。但这似乎是一个巨大的解决方案。有没有办法不用枚举直接通过文件名获取项目项?这是我对IVsSingleFileGenerator的Generate方法的实现publicintGenerate(stringsourceFilePath,stringsourceFileContent,stringdefaultNamespace,IntPtr[]o

c# - 永远不会执行加载项事件

我使用“VisualStudio插件”向导创建了一个新的插件项目,现在,我正在尝试添加一些事件处理程序:publicvoidOnConnection(objectapplication,ext_ConnectModeconnectMode,objectaddInInst,refArraycustom){_applicationObject=(DTE2)application;_addInInstance=(AddIn)addInInst;_applicationObject.Events.BuildEvents.OnBuildBegin+=BuildEvents_OnBuildBegi

c# - 捕获窗口关闭事件

我想捕获关闭VisualStudio2008IDE中的编辑器窗口(选项卡)的事件。当我使用dte2.Application.Events.get_CommandEvents(null,0).BeforeExecute我成功捕获了这样的事件:文件.关闭File.CloseAllButThis文件.退出Window.CloseDocumentWindow和别的。如果窗口中的代码NotAcceptable,我将停止该事件(CancelDefault=true)。但是如果我点击右侧的“X”按钮,“保存更改”;对话框出现,选项卡编辑器窗口关闭,我没有任何捕获的事件。在这种情况下,我可以捕获Win

c# - 以编程方式重置 VisualStudio 快捷方式

关于resettingVisualStudiokeyboardscheme有两个相关问题和importingVisualStudiosettings.然而,这似乎并不能很好地结合在一起。我有两个包含快捷方式的设置文件:VisualC#2005F12VisualC#2005如您所见,ReSharper.vssettings并没有真正分配F12快捷方式,因为它是VisualStudio的默认设置。导入该文件,不会重新应用ShortcutsScheme,在这两种情况下都是VisualStudioC#2005。这反过来导致F12继续执行GotoNextHighlight命令。仅使用导入对话框时
12