今天继承一个新项目,试图让数百个警告消失,并为此感到难过。ASP.NET MVC 2,framework 4.0 项目在 VS2010 中编译得很好,但是当构建过程移交给 aspnet_compiler.exe 时,我得到以下内容(从输出窗口剪切和粘贴):
AfterBuild:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v temp -p C:\data\crecare\CreCare20110403\CreCare.Mvc\\..\CreCare.Mvc
ASPNETCOMPILER : warning CS1685: The predefined type 'System.Runtime.CompilerServices.ExtensionAttribute' is defined in multiple assemblies in the global alias; using definition from 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll'
在对象浏览器中进行搜索和对项目中的引用进行繁琐的逐个程序集审查都不会出现任何多重定义。据我所知,以前的团队没有尝试在以前的 ASP.NET 版本中构建任何扩展(我了解到此错误的一个原因);我认为这从一开始就针对 4.0。
这只是一个警告,我想我可以忽略它(你甚至不能使用 aspnet_compiler.exe 进行 /nowarn,所以我必须查看它们)——但这让我错了。关于如何追捕这个的任何建议?项目路径中的“\..\”是否应该让我担心?我正在运行 64 位 Windows;它不是同时查看 x86 和 64 吗?
值得注意的是,在解决方案中使用VS2010中的对象浏览器只能找到aspnet_compiler.exe找到的程序集中的类型;搜索该类型只会给出一个结果。aspnet_compiler.exe 是在寻找 VS2010 没有的地方吗?