我遇到了Visual Studio 2017(Enterprise,版本15.5.2)的一个奇怪的问题,我只能在一台特定的机器上复制。其他开发机器上不会出现此问题。
给定文件foo.resources.json
,其中包含以下内容:
{
"FooReparatur": "Reparatur",
"FooVerlust": "Verlust",
"FooWema": "Wema"
}
应用快速操作Sort Properties
会导致密钥顺序错误:
{
"FooReparatur": "Reparatur",
"FooWema": "Wema",
"FooVerlust": "Verlust"
}
Visual Studio的配置语言是英语,没有为给定文件选择架构。 Windows的配置语言是爱沙尼亚语,但该字母表的排序顺序也是错误的。
我通过hexdump检查了任何有趣的unicode字符或任何类似字符,但也没有找到类似的东西。如前所述,文件在所有其他计算机上正确排序。
我已尝试禁用安装所具有的所有(默认)扩展程序,但这也无法解决问题。
我查看了一般文本编辑和特定文件类型的大多数设置,但我找不到可能导致此问题的设置。可能是什么问题?我该如何进一步调试?
答案 0 :(得分:1)
这是爱沙尼亚整理的一个属性,其中' V'和' W'被视为同一个角色。因此,下一个不同的字符将是重要的字符。正如这个使用.Net的C#代码所证明的那样。
var words1 = new[] { "FooR", "FooVer", "FooWem" };
var words2 = new[] { "FooR", "FooVa", "FooWb" };
var estonianCultureInfo = new System.Globalization.CultureInfo("et-EE");
var estonianComparer = StringComparer.Create(estonianCultureInfo, false);
var sortedWords = words1.OrderBy(x => x, estonianComparer);
foreach (var word in sortedWords)
{
Console.WriteLine(word);
}
Console.WriteLine("[-----]");
sortedWords = words2.OrderBy(x => x, estonianComparer);
foreach (var word in sortedWords)
{
Console.WriteLine(word);
}
输出:
FooR
FooWem
FooVer
[-----]
FooR
FooVa
FooWb
答案 1 :(得分:0)
尝试使用此插件进行排序:
https://marketplace.visualstudio.com/items?itemName=richie5um2.vscode-sort-json
如果dosn工作,请尝试再次安装visual studio并选择语言英语来测试它是否有效
好机会。