我从msdn完成了自定义模板项目教程第一部分,并在File - New - Project菜单中获得了一个基本的项目结构.然后我升级到msdn第二部分,无法通过" 测试Visual Studio模板 "部分.
当我在自定义项目模板文件夹添加.vstemplate文件中,将Build Action所有的文件在我的自定义项目模板文件夹,ZipProject并更改第二个和第6参数[ProvideProjectFactory]来null和".\\NullPath"分别文件-新建-项目不显示对话框中的自定义模板了.
模板zip文件夹放在正确的文件夹中,我可以打开以前创建的自定义项目(如果没有安装项目模板,这将无法工作),但我无法创建任何新的自定义项目,因为它们不是'可见.
有没有人有创建自定义项目模板的经验?
Visual Studio 2012 SDK中的默认VSPackage模板生成一个使用强命名的项目.
因为强命名是可传递的,这意味着我添加的任何引用(例如,同一解决方案中的另一个项目,或第三方依赖项)也需要强名称.
由于我不觉得强烈命名第三方依赖,我宁愿从我的VSIX中删除强命名.
这样做的缺点是什么?
我最近开始使用LuaInterface来让Lua脚本在我的C#程序中运行.为了从Visual Studio中轻松创建Lua脚本,我安装了一个Lua语法高亮插件并创建了一个项模板,这样我就可以通过右键单击项目文件并选择"New Item-> Lua Script"来创建新脚本.这非常有效.
为了让程序找到脚本,需要将它们放在构建位置的同一目录(或子目录)中.这正是我想要的地方,但为了做到这一点,我必须为我创建的每个新文件更改"复制到输出目录"设置.
有没有办法更改此选项的默认设置?现在它默认为"不要复制".我只能找到另一个问题基本上是同一个问题,但是那里提供的唯一答案是建议将构建后事件复制到具有相同扩展名的所有文件到定义的位置.我真的不想这样做,因为目标目的地可能会改变或者可能会添加更多目标(并且需要额外的事件?),我希望能够在每个文件的基础上更改该设置.
这只是一个方便的问题,因为我可以手动为每个文件更改该选项,但是已经能够自动执行其余的过程,我希望我也可以自动完成最后一个细节.
有没有办法找出visual studio观察窗口中存在哪些变量?
DTE dte;
var watchWindow = dte.Windows.Item(EnvDTE.Constants.vsWindowKindWatch);
Run Code Online (Sandbox Code Playgroud)
我们可以像上面那样获得监视窗口,但是还没有找到获取值列表的方法.我正在尝试获取变量名称和相应的值.
我正在开发视觉工作室的扩展.
我有一个选项页面:
public class GeneralOptionsPage : DialogPage
{
[Category("General")]
[DisplayName("Foos")]
[Description("Bla Foo Bla")]
public string[] Foos { get; set; }
[Category("General")]
[DisplayName("Bar")]
[Description("Bar Foo Bar")]
public string Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
该Bar物业完美运作并坚持下去.
该Foos属性也可以工作(它甚至在选项页面中为您提供了一个很好的弹出窗口,您可以在每行输入一个字符串),这意味着我可以设置它并在我的扩展中使用它,但它不会写入注册表/存储.当我关闭VS并再次打开它时,它总是空着的.
从MSDN引用:
DialogPage的默认实现支持具有适当转换器的属性,或者是可以扩展为具有适当转换器的属性的结构或数组的属性.有关转换器列表,请参阅System.ComponentModel命名空间.Visual Studio Extensibility Samples管理int,string和System.Drawing.Size属性.
据我所知,我正在使用System.ComponentModel命名空间中的有效组件.
那么我做错了什么?我是否必须以不同的方式处理数组?
我很可能不理解问题空间,但我很难搞清楚MEF(编辑器分类器项目).
我已经创建(将MSDN中的演练指南https://msdn.microsoft.com/en-us/library/ee197665.aspx拼凑在一起),这是Informix存储过程语言的语法高清.
我遇到的一个主要问题是 - 我希望能够找到关键字"DEFINE"的所有实例,并将其后面的单词直接填充到我所拥有的语句完成扩展中(目前它是从定义的单词列表中填充的).
与C#的本机支持非常相似 - 当您定义变量时,它在自动完成下拉列表中可用.
我摆脱了课堂上的硬编码(从演练中),我的完成单词定义如下:
List<Completion> completions = new List<Completion>();
CompletionTags completionTags = new CompletionTags();
foreach (string completionTag in completionTags.completionTags)
{
completions.Add(new Completion(completionTag));
};
Run Code Online (Sandbox Code Playgroud)
我的CompletionTags类非常简单:
class CompletionTags {public List completionTags;
public CompletionTags()
{
this.completionTags = new List<string> {
// SQL keywords
"COUNT",
"FROM",
"HAVING",
};
}
Run Code Online (Sandbox Code Playgroud)
我知道我需要做什么.我以某种方式需要在缓冲区更改时劫持缓冲区并找到所有出现的'DEFINE([a-zA-Z0-9 _] {1,})'并将\ 1添加到completionTags列表中.
我不知道怎么做.此时在任何方向(或任何方向)的任何指针都将非常感激.
善待 - 我们在某个阶段都已经超出了我们的深度(我已经用C#编程了3天)...
假设我需要在刚刚从模板创建的扩展中存储任何数组.
我刚刚创建了新的VSIX项目,为其添加了VSPackage,然后添加了选项页面grid(DialogPage).然后我按照类似问题的答案的说明:DialogPage- 字符串数组没有持久化.
而且,为了演示目的,我们还添加了int[]数组和plain int以及自定义类型转换器.
// [standard attributes]
[ProvideOptionPage(typeof(OptionPageGrid),
"My Category", "My Grid Page", 0, 0, true)]
public sealed class FooBarVSPackage : Package
{
// standard code
}
public class OptionPageGrid : DialogPage
{
// [typical attributes]
[TypeConverter(typeof(StringArrayConverter))]
public string[] Foos
{ get; set; }
// [typical attributes]
[TypeConverter(typeof(CustomIntConverter))]
public int Bar
{ get; set; }
// [typical attributes]
[TypeConverter(typeof(IntArrayConverter))]
public int[] Bazes
{ get; …Run Code Online (Sandbox Code Playgroud) 我知道这是一个非常广泛的问题,但是我需要知道在隔离模式下使用VS Shell开始为课程创建品牌的自定义IDE.通过搜索可以得到关于这种野兽的有用信息,所以我希望通过使用这个基础的明显困难的练习,从大师的一些提示和参考.
我无法找到如何执行此操作,Visual Studio SDK参考也不是很有帮助.
我正在试图弄清楚如何获得NormalizedSnapshotSpanCollectionXML评论.我想在它们旁边放一个图标...我不希望每行旁边有一个图标,但只是在每个组的第一行旁边...
///<summary>SomeXML Comment</summary> [ICON]
///<remarks>some remarks</remarks>
public void Foo()
{
///Some false XML comment line that does not get an icon.
}
Run Code Online (Sandbox Code Playgroud) c# visual-studio-2010 xml-comments adornment visual-studio-sdk
任何人都有使用Visual Studio SDK的经验,可以帮助指出我正确的方向来解决这个问题奇怪的行为?

为了总结屏幕截图,我安装了Visual Studio 2010(不是它不是新安装),但SDK安装程序似乎认为我没有.
是的,我尝试了不止一次,是的,我在尝试安装SDK之前关闭了Visual Studio.
c# ×4
vsix ×2
.net ×1
adornment ×1
autocomplete ×1
automation ×1
envdte ×1
mef ×1
properties ×1
strongname ×1
xml-comments ×1