代码之家  ›  专栏  ›  技术社区  ›  Ivan Zaruba

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

  •  0
  • Ivan Zaruba  · 技术社区  · 6 年前

    在VS 2017的某个时刻(最有可能是在升级到版本15.8.7之后) cw 通常产生的代码片段 Console.WriteLine(); 已经开始生产 System.Console.WriteLine(); .

    令人惊讶的是,这种行为并不是一成不变的——在具有相同VS版本的旧项目中,它可以像预期的那样工作。

    我试着移除 .vs 文件夹,但没用。

    以下是本文的内容 cw。一小条 文件来自'C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\VC\Snippets\1033\Visual C\cw。一小条

    <?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 所以它总是产生 安慰WriteLine(); ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Royal Kitsune    6 年前

    如果要添加该代码段的页面上还没有system的using语句,则可以告诉该代码段。包括以下内容 之后 开放标签 <snippet> 之前 开放 <declarations> 标签

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

    为了参考添加更多(在本例中不需要,但将来可能需要)导入,您需要创建单独的标记对(如下所示)。

    <Import>
        <Namespace></Namespace>
    </Import>
    
        2
  •  1
  •   Arvo Bowen    4 年前

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

    我快速而肮脏的修复方法是编辑文件。。。

    %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 一小条