VS 2017-需要修复`cw`代码段输出

时间:2018-10-25 12:24:23

标签: c# visual-studio-2017 code-snippets

在VS 2017中的某个时刻(很可能是在更新版本15.8.7之后),通常产生cw的{​​{1}}代码段已开始产生Console.WriteLine();

令人惊讶的是,这种行为不是恒定的-它在具有相同VS版本的旧项目中按预期工作。

我尝试删除System.Console.WriteLine();文件夹,但没有帮助。

这是来自C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ VC#\ Snippets \ 1033 \ Visual C#\ cw的 cw.snippet 文件的内容。片段

.vs

是否有一种方法可以修复<?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>cw</Title> <Shortcut>cw</Shortcut> <Description>Code snippet for Console.WriteLine</Description> <Author>Microsoft Corporation</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal Editable="false"> <ID>SystemConsole</ID> <Function>SimpleTypeName(global::System.Console)</Function> </Literal> </Declarations> <Code Language="csharp"><![CDATA[$SystemConsole$.WriteLine($end$);]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets> 代码段,使其始终生成cw

2 个答案:

答案 0 :(得分:1)

您可以告诉代码段,如果尚未将system的using语句添加到页面上。在打开标签<snippet>之后的之后和在打开<declarations>标签之前的之前

<Imports>
    <Import>
        <Namespace>System</Namespace>
    </Import>
</Imports>

要添加更多的参考(在这种情况下是不需要的,但将来可能会),您需要制作单独的标记对(如下所示)。

<Import>
    <Namespace></Namespace>
</Import>

答案 1 :(得分:1)

对我来说,我最终只是编辑了代码片段本身。我确定每次有更新时我都需要这样做,而且我不确定除了创建用户定义的代码段之外还有更好的永久修复方法。

我快速而肮脏的解决方法是编辑文件...

<块引用>

%USERPROFILE%.vscode\extensions\ms-dotnettools.csharp-1.23.8\snippets\csharp.json

然后查找以下部分(在第 53 行附近找到我的部分)...

"Console.WriteLine": {
    "prefix": "cw",
    "body": [
        "System.Console.WriteLine($0);"
    ],
    "description": "Console.WriteLine"
},

那就换...

"System.Console.WriteLine($0);"

到...

"Console.WriteLine($0);"

保存,然后重新启动 VSCode 并测试 cw 代码段。