我使用Visual Studio 2013时遇到了一些非常奇怪的编译问题,这真的会扰乱我的团队工作流程。
这个问题很难解释,但我会提供截屏和代码片段,以帮助人们了解我们所面临的问题。
我们有一个项目,我们最近从2010年迁移到VisualStudio 2013并将其升级到.Net 4.5,该项目是一个ASP.net Web Forms项目。
代码编译并运行但奇怪的是,当我更改任何类文件有时甚至只是添加注释'Test Comment
时,它无法编译。
错误窗口中显示的错误都很奇怪,并且IntelliSense在错误的位置显示错误,一些错误甚至完全关闭。一个示例是行_To is not defined
中的Dim _Town as String
或同一行'ring' is not defined
中的{{1}},它本身就是字符串
以下是我在第44行添加失败代码然后将其注释掉并重新编译后的一些错误
我已经尝试更改文件行结尾并确保它们都是Windows CR + LF,我试过在构建输出中窥探我真的看不到任何帮助。 我甚至将解决方案从另一台机器上的源代码控制中解放出来进行测试,它也遇到了同样的问题。它实际上并没有在新机器上正确编译,但我还不知道这两个问题是否相关。
答案 0 :(得分:1)
我和你的问题一样,同样的情况(我把一个非常古老的VB.NET项目升级到了2013年的项目)。
该问题似乎与文件编码有关。我不知道具体原因,但它可能有多个文件具有不同的编码(在我的情况下,一些文件是ANSI,其他文件是UTF-8 w / BOM)。
如果您不确定具有不同编码的文件,请在Notepad ++中打开它们。你应该在右下角看到文件编码。
首先,我已将违规文件转换为ANSI以查看是否可以解决问题。我在Notepad ++中打开了违规文件,选择了编码 - 转换为ANSI,已保存,编码 - >在没有BOM的情况下编码UTF-8,在VS中保存并重新加载文件。现在项目编译成功。
但是,我每次更改文件时都不想这样做(因为VS将其转换回UTF8),因此我将所有旧文件(在我的情况下只是4个文件)复制到临时文件中目录,从VS中删除文件并创建具有相同名称的新文件,然后将内容复制/粘贴到每个文件中。现在我的所有文件都是UTF8,我不再有这个问题了。
解决方案是将文件转换为ANSI格式为UTF8,或将它们转换为UTF8(这似乎是Visual Studio中新创建文件的默认编码,所以我建议将它们转换为UTF8)强>
如果您有很多文件,我认为您可以尝试使用Notepad ++将它们转换为UTF8。
问候。