【问题标题】:Visual Studio opening .xml files in NotepadVisual Studio 在记事本中打开 .xml 文件
【发布时间】:2009-12-28 20:12:36
【问题描述】:

所以我今天早上很高兴地从事一个大量使用自定义 .xml 配置文件的项目。

突然之间,每当我在解决方案资源管理器中双击一个 .xml 文件时,它就会在记事本中打开,而不是在 Visual Studio 中。

认为是 Windows 文件关联,我在资源管理器中右键单击文件,选择打开方式 >> 选择默认值,然后选择 Visual Studio 2008。

但问题仍然存在——现在当我从资源管理器中打开一个文件时,Visual Studio 会打开,然后它会打开记事本。

不用说,这很令人沮丧,谷歌也帮不上什么忙。有没有其他人遇到过这个问题,你是怎么解决的?

注意事项:

  • 这只发生在 .xml 文件中。其他文本文件(.config、.txt)可以在 Visual Studio 中打开。
  • 这与 Windows 文件关联无关,因为 Windows 会正常打开 VS2008。这是 Visual Studio 内部的一些疯狂问题。
  • 我还尝试了工具 >> 选项 >> 常规 >> 恢复文件关联。不走运。
  • 工具>>选项>>文本编辑器>>文件扩展名中没有任何内容
  • 这是 .xml 文件的“打开方式”菜单的外观。如您所见,“XML 编辑器”设置为默认值。

【问题讨论】:

  • 我觉得这个问题应该发到superuser.com
  • @raoulsson - StackOverflow 上有 4756 个问题标记为 [visual-studio-2008],但 SuperUser 上只有 31 个问题。我认为很明显,关于编程工具的问题仍然属于 StackOverflow。

标签: visual-studio-2008 file-association


【解决方案1】:

是的。 Visual Studio 文本编辑器似乎无法支持 UTF-16 Unicode,因此在外部编辑器中打开它。使用“UTF-8”编码重新保存 xml 文件(记得将您的 xml 声明从“UTF-16”更改为“UTF-8”,这样就可以了。

【讨论】:

  • 我有使用 .log 文件的保存体验。无论如何,VS一直在记事本中打开它。我使用记事本将其强制为 UTF-8 编码。现在它在 VS 中打开正常。
【解决方案2】:

如果您进入工具 > 选项 > 文本编辑器 > 文件扩展名,这里有映射到记事本的内容吗?如果是这样删除它,它应该清除它。此外,如果您的项目中有 XML 文件,您可以右键单击它,选择打开方式,然后在此处选择您的默认编辑器。

更新:查看 cmets 以了解其他尝试

【讨论】:

  • 默认编辑器当前设置为“XML 编辑器”。但是,当我单击确定时,该文件仍会在记事本中打开。
  • 运行 %InstallPath%\devenv.exe /resetskippkgs 有帮助吗?
  • 它没有。但后来我只是卸载并重新安装,这并不是一个真正的 PITA,它确实自己纠正了。奇怪的。我赞成并接受所有的努力。
  • 我发现了我的问题:显然我打开的 XML 文件都是 UTF-16 编码的。 Visual Studio 可以很好地打开 UTF-8 编码的 XML 文件。我不知道为什么 VS 不能打开 UTF-16 文件,但我想我用 vim 没问题。
  • @ShawnSteward 建议尝试 %InstallPath%\devenv.exe /resetskippkgs 帮助了我。我的情况有点不同,因为我在 Visual Studio 2012 下有一个 MVC 4 项目,当我将 C# 类添加到模型文件夹中时,它会在记事本中打开。启动 Visual Studio 后,如果我只是打开文件,它仍然在记事本中打开,但如果我删除它并创建一个新文件,它会在 Visual Studio 中打开。由于我曾尝试创建一个全新的项目,但仍然遇到记事本问题,因此这是一个真正的救命稻草。
【解决方案3】:

遇到了同样的问题。尝试使用 XML Editor with Encoding 打开文件。这样我就可以明确选择 Unicode,它在 VS 中成功打开了文件。从那里保存文件后,问题就消失了。

【讨论】:

  • 按照您的建议,我在 VS 2017 中将它作为“带编码的 XML(文本)编辑器”打开,然后选择“Unicode - Codepage 1200”以使其正确打开。让它“(自动检测)”编码会导致所有其他字符转换成看起来像空格的东西。
【解决方案4】:

我对 .txt 文件也有类似的问题。 我尝试使用“打开方式...”从 VS 打开该文件,然后 VS 打开它,但每隔一个字符就会显示垃圾。 当我将文件保存到不同的代码页时,问题就消失了。 虽然它仍然有点奇怪,因为原始代码页中的原始文件的副本确实在 VS 中通过双击正确打开并且也正确显示。

【讨论】:

    【解决方案5】:

    我认为“每隔一个字符显示垃圾”是由于该文件被保存为 unicode,但在编辑器中被视为非 unicode

    【讨论】:

    • 没错。最有可能保存(编码)为 UTF-16,但解释为(未编码为)ASCII 或 UTF-8
    【解决方案6】:

    在安装升级后,我在使用 VS Express 2012 for Windows Desktop 的 *.js 文件时遇到了类似的情况。运行:

    rmdir /s /q  %LOCALAPPDATA%\Microsoft\WDExpress\11.0\ComponentModelCache
    

    重启 VS 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2017-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多