Tag: 加载项

找出游标是否在方法,类或命名空间块中

我想创建一个Visual Studio插件,它可以识别插入符当前是否在方法,类或命名空间块中,即如果插入符号移动,插件应该能够记下插入符当前位于其中的状态 – 等元素。 如果这可以扩展到任何包含在花括号中的C#块,例如属性,那将是非常好的。 虽然我已经检查了类似的问题,但如果这是一个重复的问题,请告诉我,以便我可以相应地进行标记。 如果其他VS Addin相关问题在这里显然有用,请告诉我。 基本上,我想知道我们可以使用哪些技术以及如何实现这些技术。 编辑:我想开始的简短答案是: 获取Visual Studio 2010 SDK SP1 可能使用“可扩展性”项目模板“编辑器文本装饰”或其他一些此类模板。

清除Microsoft Office加载项缓存

我在Microsoft PowerPoint 2007的加载项中编写了一些代码。我执行了它。 它说有问题。 在这里的同事的帮助下 ,我纠正了这个问题。 我编译了新代码并运行它。 它仍然考虑旧代码并忽略新代码并仍然抛出相同的问题。 这两个版本的代码完全不同,因为它们不共享问题报告的变量,因此我确定问题现在不在代码中。 显然,MS Office在某些缓存中保留了旧版本的二进制文件。 如何清除它并允许它访问新编译的加载项二进制文件?

在Visual Studio中添加 – 如何检索文本选择对象的属性(Visual Commander)

我已经抓了一天这个: 基本上我正在尝试为Visual Studio 2012构建一个加载项,它执行以下操作: 获取当前选定的变量名称,然后查找它是其实例的类,然后在其自己的行上为每个属性键入veriable.property: 之前: 例如。 (考虑选择myPerson) int CountPerson(Person myPerson) { *myPerson* } 后: int CountPerson(Person myPerson) { myPerson.Name myPerson.Surname myPerson.Age } 我在stackoverflow上问了一个类似的问题,并得到了我现在追求的答案。 Visual Studio将类的所有属性转储到编辑器中 这是迄今为止的源代码: using EnvDTE; using EnvDTE80; using System; using System.ComponentModel; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; public class C : VisualCommanderExt.ICommand { public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { EnvDTE.TextSelection […]

如何将WordOpenXML属性转换为System.IO.Packaging.Package?

我一直在尝试使用Visual Studio 2008在C#中构建Outlook 2010插件。我能够从Microsoft.Office.Interop.Outlook.Inspector对象获取Microsoft.Office.Interop.Outlook.Inspector对象,它表示当前正在编辑的电子邮件。 据我所知,这个DocumentClass也用于其他各种情况(通常用于Microsoft Word扩展,不出所料)。 该类有一个名为WordOpenXML的属性,它似乎是构成.docx包的所有文件的XML表示forms,在将此Word文档另存为.docx将保存到磁盘。 这个属性非常有用的一种方法是它是否可以在内存中转换为System.IO.Packaging.Package对象; 即。 反序列化它。 有谁知道是否有一种简单的方法可以做到这一点,还是我需要编写一些XML解析代码来手动完成它?

C#中的Scrollable MessageBox

我在VS2008,C#中使用Addin,我需要显示消息(错误消息和其他)。 我不知道消息的长度,因此我想使用Scrollable MessageBox。 我从2007年开始发现这篇文章:Mike Gold 2007年7月30日 http://www.c-sharpcorner.com/UploadFile/mgold/ScrollableMessageBox07292007223713PM/ScrollableMessageBox.aspx 现在,2011年还有其他好的组件吗? 我想评估几个有关它的组件。 更新: 另一个组件,但更旧:MessageBoxExLib http://www.codeproject.com/KB/dialog/MessageBoxEx.aspx 可自定义的.NET Winforms消息框。 http://www.codeproject.com/KB/dialog/Custom_MessageBox.aspx

MS Word加载项:RIght点击处理程序

我正在为MS Word 2010开发一个加载项,我想在右键菜单中添加几个菜单项(仅当选择了一些文本时)。 我看过几个例子来添加项目,但无法找到如何有条件地添加项目。 总之,我想覆盖像OnRightClick处理程序之类的东西。 提前致谢。

在运行时加载nuget依赖项

我正在寻找一种通过执行以下步骤来运行代码的方法: 接收NuGet包列表(元组列表(“包名”,“包版本”,“主类路径”)。 在本地目录中检索它们(参见代码示例#1) 在运行时将它们加载到我的程序中 通过内省运行主类(参见代码示例#2) 到现在为止,我正在努力迈出第三步。 我无法在运行时找到如何加载我的包。 我的主要问题是: 如何找出存储检索到的包的文件夹? 如何将这些目录的内容加载到我的程序中? 谢谢你的帮助。 代码示例#1: private static void getPackageByNameAndVersion(string packageID, string version) { IPackageRepository repo = PackageRepositoryFactory.Default .CreateRepository(“https://packages.nuget.org/api/v2”); string path = “C:/tmp_repo”; PackageManager packageManager = new PackageManager(repo, path); Console.WriteLine(“before dl pkg”); packageManager.InstallPackage(packageID, SemanticVersion.Parse(version)); } 代码示例#2: private static void loadByAssemblyNameAndTypeName(string assemblyName, string typeName) { AppDomain isolationAppDomain = AppDomain.CreateDomain(“tmp”); object […]

Office附加function区:带有2个插件的相同选项卡

我正在尝试使两个单词加载项组出现在同一个选项卡(工具)中,但它们都创建了独特的选项卡(有两个“工具”选项卡)。 我看过这个video,但我使用的是可视设计器,而不是XML。 我可以用某种方式编辑设计器代码来使其工作吗?

实现插件/插件/插件策略的最佳实践

我的应用程序应该是可扩展的。 为了我自己的需要,我实施了一些服务。 这些服务基于IoC / DI原理。 因此,服务封装了应用程序的概念。 例如,有一个IApplicationService。 ApplicationService公开有关当前例外应用程序的信息。 指定了AssemblyInfo等。 另一个示例是INavigationService(请参阅示例中的mef.codeplexcom)。 此服务提供了一些属性,其中包含有关当前所选项目的信息以及某些事件。 我认为,“服务方法”是最简单的,并简化了应用程序的扩展点。 所以,我不确定这是否是最好的方法。 你怎么看? 你如何在像addins / addons / plugins这样的应用程序中实现“扩展点”? 提前感谢您的回复! 对不起,我的英语很差。 ;)

创建“自定义设计器”Visual Studio 2010加载项

我们工作的一个主要部分是创建和操作某些XML文件,其中有一个自定义编辑器。 编辑开始变得吱吱作响,我们正在寻找建立替代品。 由于VS2010最近已经到来,表面上是一个改进的插件架构(MEF?),我感兴趣的是可以在Visual Studio中将编辑器构建为自定义编辑器 。 它必须以与代码编辑器或Designer相同的方式出现 – 一个标签项,其中可以有多个一次打开,包含我们用来编辑文件的GUI。 它将与VS的编辑菜单集成 。 它可以使用输出窗口来显示消息 。 它看起来与Visual Studio中的任何其他编辑器相同 。 现在,我正在寻找以类似方式工作的加载项示例 – 理想情况下使用源代码 – 以查看此模型是否符合我们的要求。 我也在寻找与创建VS2010加载项相关的任何文档或教程 ,或者有关VS2008加载项的信息,如果这仍然相关的话。 欢迎任何输入。 谢谢!