Сегодня унаследовал новый проект, пытаясь избавиться от сотен предупреждений, и остановился на этом. 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 с самого начала.
Это всего лишь предупреждение, и я полагаю, что могу его проигнорировать (вы даже не можете /nowarn с aspnet_compiler.exe, поэтому я должен посмотреть на них) - но это меня неправильно. Любые предложения о том, как выследить это? Должен ли меня беспокоить этот "\..\" в пути к проекту? Я использую 64-битные окна; это не смотреть на х86 и 64 одновременно?
Стоит отметить, что использование обозревателя объектов в VS2010 в решении находит только тот тип в сборке, который находит aspnet_compiler.exe; поиск типа дает только один результат. Ищет ли aspnet_compiler.exe места, которых нет в VS2010?