统一:每次我统一打开VS时,都会出现“行尾不一致”对话框


10

每次我与Visual Studio一起从统一打开脚本文件时,都会出现此对话框,显示有关规范行尾的信息?这是什么意思?我每次都单击“是”,但仍然无法摆脱它。仅当我统一打开文件时才会发生。

在此处输入图片说明


5
Unity的默认脚本和着色器模板文件中具有Unix / Mac样式的行尾(LF),但是Windows中的Visual Studio喜欢使用Windows样式(CR LF)。通常,一旦将每个文件标准化一次并保存结果,它就会消失。我一直告诉自己我要进去并编辑所有模板,所以我再也不需要处理了,然后我就不再做...(我真希望Unity能够符合操作系统的约定或[显示一个选项]始终静默自动转换。不断出现的提示确实很烦人)
DMGregory

...或切换到VS Code。甚至还有一个Unity资产商店插件:assetstore.unity.com/packages/tools/vscode-45320
Jasper Citi

Answers:


5

在Visual Studio中,可以通过查看Tools -> Options,导航到Environment -> Documents树的该部分,然后取消选中“在加载时检查一致的行尾” 来禁用此检查(并由此警告)。

这样可以抑制警告,但不能真正解决问题。源文件将仍然具有不一致的行尾。理想情况下,您可以通过配置用于插入相同类型的行尾或自动检测现有样式并保留它的所有编辑器来解决此问题。不幸的是,并非所有的文本编辑器都支持这种行为。例如,VS没有可控的默认值(尽管它可以让您基于来配置每个文件使用的样式File -> Advanced Save Options,但这确实很乏味)。


感谢您的帮助...我认为这些工具的开发人员对此并没有太多抱怨,因此他们从未解决过这种令人讨厌的行为
Mark S

7

文件结尾(EOF)| 行尾,行尾(EOL)

如Josh Petrie所述,您可以通过更改打开的每个脚本的行尾来解决问题。首先,您需要在Visual Studio中关闭脚本。然后转到Unity并双击Unity控制台line ending warning消息。Visual Studio将打开缺少的脚本,并显示一个行结束对话框。转到“行尾”部分,然后选择Windows或使用的OS平台。现在保存脚本,下次打开VS时,该脚本不会弹出消息。

Visual Studio 2019

如果它无法解决,您可以强制使用

  • 编辑>高级>设置新行> CRLF(对于Windows)。

这会将所有LF替换为CRLF。

默认模板

制作新脚本时,模板的行尾可能不正确。因此,如果您更改Unity模板,则每次创建新脚本时都不会遇到此常见问题。要更改默认模板,请转到安装Unity的位置并搜索ScriptTemplates文件夹:

C:\ Program Files \ Unity ... Hub \ Editor \ 20xx.x ... Editor \ Data \ Resources \ ScriptTemplates

在Windows中,可以将默认模板脚本修改为管理员或使用管理员密码。现在,使用VS打开此脚本模板(文件:81-C#Script -...)。在选择了脚本的VS中,转到“ File -> Advanced 保存选项”,将弹出窗口并选择Windows您正在使用的平台OS。现在保存脚本,下次您在Unity中创建新的C#脚本时,对于所有这些新脚本都不会弹出消息。

为VS 2010-2017安装Strip'em

现在,您还可以测试是否希望使用其他用于VS的工具。这段旧视频(速度为10分32秒)可以为您提供帮助,但是其余视频已经过时了。警告,不要遵循本教程,它不再起作用。它可以帮助您在使用Strip'em的过程中(10分32秒后)

https://youtu.be/2PVPz8Pnnrw?t=10m32s

要在VS 2015中激活Strip'em,请在安装后按,然后Tools > Strip'em选择您的操作系统。在VS Community 2017中使用Strip'em,只需双击安装程序即可。

http://www.grebulon.com/software/stripem.php


1

除非您非常致力于Visual Studio,否则我发现实际上只是在另一个文本编辑器(例如Sublime或VS Code)中打开文件,然后保存它即可立即解决此问题。过去,我在Visual Studio方面的经验很差,调试奇怪的编辑器错误总是非常困难。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.