刚刚升级到 Visual Studio 2012,连接到我的 TFS 解决方案,将所有项目从 v4.0 升级到 v4.5。解决方案编译并运行良好。极好的。
现在我正在添加新代码,但错误列表输出窗口中未列出编译器错误。我只看到与未找到的 .dll 文件相关的错误。
例如Error 1 Could not copy the file "C:\SourceCode\<snip>Library.dll" because it was not found. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets
好吧,当然找不到,我放了一行:
thing bob = new thing();
进入一个班级。
不幸的是,在编译过程中没有报告这个错误。
甚至详细的编译器输出在 csc.exe 任务之后也没有显示:
6>Task "Csc"
6> C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe <snip>
6>Done executing task "Csc".
如果我在 cmd 窗口中运行 csc.exe 任务,您可以清楚地看到异常:
Microsoft (R) Visual C# Compiler version 4.0.30319.17929
for Microsoft (R) .NET Framework 4.5
Copyright (C) Microsoft Corporation. All rights reserved.
State\ConditionalAction.cs(16,13,16,18): error CS0246: The type or namespace name 'thing' could not be found (are you missing a using directive or an assembly reference?)
State\ConditionalAction.cs(16,29,16,34): error CS0246: The type or namespace name 'thing' could not be found (are you missing a using directive or an assembly reference?)
有没有人以前见过这个问题或有任何想法?
编辑更多证据
似乎正在报告“硬”编译错误,即通过从垃圾行中删除分号会给我一个编译器错误:
事情鲍勃=新事物()
错误2;预期 C:\\ConditionalAction.cs 16
但是,与缺少类型有关的错误仍然不存在。
编辑另外2个证据
在开始运行和调试 MVC 应用程序 (F5) 时,VS 2012 似乎无法正确识别项目存在缺少类型的错误。我刚刚删除了有问题的代码,运行了应用程序,重新插入了有问题的代码,重新运行了应用程序,VS 愉快地运行了以前编译的应用程序版本,没有抱怨。