我们理想需要的是,知道Microsoft如何处理XAML生成的代码(那些*.g.cs文件).如果您转到后面的XAML代码,即使*.g.cs文件不是项目的一部分,intellisense也会工作!
语境:
在自定义VS包中,我们需要有一些逻辑来在VS IDE中打开一个CS文件(不要让它成为项目的一部分),以允许用户编辑它.
我们将文档连接到Running文档表,并使用IVSRunningDocumentTable接收诸如Saving,Close和all之类的事件.效果很好.
现在的问题是,当文档被打开时,Intellisense无法工作,原因很简单,打开的文档不是项目的一部分(遗憾的是,我们不能这样做,我们不能让代码落后) .
我正在考虑基于Visual Studio Shell(主要是隔离模式)创建产品.由于Visual Studio 2010很可能在我的产品之前就是RTM,从VS2010作为基础而不是VS2008开始是否有意义?
有没有人看过他们改变了与shell框架相关的内容,是否有足够的改进以保证在更好的文档和非beta版2008上使用它?
我有一个第三方.NET库,可以将一些关键诊断信息输出到TextWriter实例.我希望在调试模式下将此信息转储到Visual Studio 2008的输出窗口,如果不在调试模式下则忽略.有什么办法可以获得对使用此输出窗口的输出流的引用,以便我可以创建一个TextWriter使用它的输出流吗?
要使用控制台输出,我可以做...
foo.LogTo(Console.Out);
Run Code Online (Sandbox Code Playgroud)
使用此界面,我可以将日志信息发送到输出窗口吗?
我想为visual studio(2010)写一个AddIn.我的目标是在解决方案资源管理器中的所有.cs文件的上下文菜单中添加一个menuitem.或者也许只是代码窗口的上下文菜单,虽然我更喜欢第一件事.我一直在Visual Studio Extensibility网站上浏览,但我必须承认,我很难找到如何实现我想要的教程.我想我并不是真的理解VS可扩展性模型.
所以我认为这里的一些聪明人必须先尝试过,我希望通过在这里问一下,而不是在黑暗中摸索来节省一些时间.
在此先感谢您的帮助.
我有一个模糊的想法Visual Studio允许您运行第二个沙盒实例,其中加载项实际上已加载.这允许您调试加载项代码等.
这有效吗?我该怎么做呢?
我目前正在使用Visual Studio的单个实例.我遇到的问题是,当我加载并运行加载项时,它将不允许我再次编译,直到我重新启动Visual Studio的实例,因为似乎无法卸载加载项.即使使用两个Visual Studio实例也不会真正有用.必须有一个更简单的方法,你们怎么做?
谢谢
我正在编写一个Visual Studio扩展,我正在创建需要在用户调整代码视图大小时调整大小的行装饰.即当用户调整Visual Studio的窗口宽度时,我会修改装饰的宽度和高度.我正在处理这个IWpfTextView.LayoutChanged事件,我正在调整我的装饰.为了避免装饰品与下面的线条重叠,我还实施了ILineTransformSource.GetLineTransform来扩大线条的高度以适应装饰的大小.
但是,当我更改装饰的尺寸时(处理IWpfTextView.LayoutChanged事件时)我没有调用我的ILineTransformSource.GetLineTransform函数来调整行变换的大小.这使得装饰物与其下方的线重叠.我似乎无法找到任何强制呼叫的方法ILineTransformSource.GetLineTransform.(虽然,如果用户滚动视图,我会接到这些调用.但是,我不想强迫用户滚动窗口来修复视觉故障.)
有没有人知道强制Visual Studio调用我的方法,ILineTransformSource.GetLineTransform这样当我的装饰物改变高度时我可以调整线条变换的大小?
我们有一个Visual Studio包(VS Package),它引用了一个类库项目(Project A).项目A又引用另一个类库项目(项目B).
所以依赖结构如下所示:VS Package> Project A> Project B.
所有项目都存在于同一解决方案中,并且依赖项已设置为适当的项目引用.
如果我在visual studio中构建软件包并查看bin/Debug文件夹,那么所有必需的程序集都包含在项目B中.但是,在部署程序包时,只存在项目A的程序集,并且缺少项目B. 我如何告诉visual studio将Project B的间接依赖包含在包中?
此MSDN文档建议"默认情况下,在多项目解决方案中,如果输出到VSIX包的项目包含对同一解决方案中另一个项目的引用,则它包含该项目的依赖项."
但是我发现事实并非如此.
我的问题与此问题非常相似,只是我遇到了主项目组件而不是本地化卫星组件的问题.这篇文章中的答案对我不起作用,因为它似乎只适用于卫星装配.
是否有一些其他输出组可以指定以指示包包含间接依赖项?
谢谢你的期待.
我正在开发一个Visual Studio包,并且我编写了一些代码,这些代码将使解决方案资源管理器中的文件依赖于另一个文件.
这意味着它为它们提供了与代码隐藏文件或设计器文件相同的关系,它们出现在父文件下,并带有加号/减号图标.
+ MainForm.cs
- MainForm.cs
MainForm.Designer.cs
MainForm.resx
Run Code Online (Sandbox Code Playgroud)
我已成功编写并正确修改底层项目文件的代码,但在项目关闭并重新打开之前,更改不会反映在解决方案资源管理器中.
我正在寻找一些代码来刷新或重新加载项目,以便在解决方案资源管理器中立即显示更改.
更多的信息...
这是sudo代码,演示了我创建依赖文件的机制.
IVsBuildPropertyStorage vsBuildPropertyStorage = GetBuildPropertyStorage();
vsBuildPropertyStorage.SetItemAttribute(projectItemIdentifier, "DependentUpon", parentFileName);
Run Code Online (Sandbox Code Playgroud)
我也尝试添加它以试图让项目重新加载,但它没有任何效果.
project.Save();
VSProject obj = project.Object as VSProject;
obj.Refresh();
Run Code Online (Sandbox Code Playgroud) 我有一个IWizard可以访问Project变量的.在项目属性中设置"启动外部程序"值时,我需要编写哪些代码?
我在单独的解决方案中处理几个独立的Visual Studio扩展.当我打开其中一个并在调试器中启动实验实例时,也会加载其他解决方案(未打开)的其他扩展.必须有一种方法只能在实验实例中一次启动一个扩展(特别是您当前正在处理的扩展),对吧?