从外部VS编辑时,Visual Studio中的“不一致的行结束”

时间:2014-11-07 12:09:44

标签: visual-studio

我编写了一个脚本,用于检出更改文件行中值的文件并检入代码。但在那之后,当我打开文件时,它会给我一个弹出窗口

  

不一致的行结尾

     

以下文件中的行结尾是   不一致。你想要标准化行尾。

有没有办法避免这种情况?当我比较时,我没有看到任何差异。是否会导致编译程序出现任何问题?

2 个答案:

答案 0 :(得分:1)

您遇到的问题是关于不同的端线编码。我敢打赌,您为更改文件而编写的脚本会插入一行,如\n。它是一个«* nix»表示法,通常也称为“LF”。某些(我猜是历史性的)原因的换行符的Windows表示法需要两个字符,它被称为“CR / LF”。也就是说,您需要在脚本中插入\n,而不是\r\n。只是为了您的兴趣,还有“CR”符号,即\r - 它用于较旧的MAC。

您看到的消息抱怨了一个事实,即文件现在有不同的行结尾。也就是说,文件中的每一行最有可能是“CR / LF”,现在又有另一种符号。你应该在整个文件中使用相同的行符号,忽略它是“Unix”,“MAC”或“Windows”。

  

当我比较时,我看不出任何差异。

它是不可打印的字符,通常不会在text-diff实用程序中显示。

  

编辑程序会引起任何问题吗?

几乎不会导致任何编译问题。无论如何,现在你知道问题是什么,以及如何解决它。

答案 1 :(得分:1)

这是我在powershell中使用的代码

$enc = New-Object System.Text.UTF8Encoding( $false ) # required to save the file with UTF8 Without BOM
$wrt = New-Object System.XML.XMLTextWriter( $phyicalPath, $enc )
$wrt.Formatting = 'Indented'
$webconfig.Save($wrt)    
$wrt.Close()
(Get-Content $phyicalPath)|Set-Content -Path $phyicalPath -Force # normalize line ending