У нас есть решение ASP.NET MVC 4 с парой ссылок, которое без проблем строится уже около 2 лет. Однако после установки KB2993928 и KB2993937 сегодня утром, мы больше не можем запускать FxCop для этого решения на наших машинах с Windows 7.
У меня такое ощущение, что это обновление изменило версию DLL сборки System.Web.Mvc в GAC. Это связано с тем, что в настоящее время в GAC я могу найти 3 различных библиотеки DLL System.Web.Mvc, которые все обновлены сегодня.
Ошибка, которую мы получаем при сборке, выглядит следующим образом:
6>MSBUILD : error : CA0001 : The following error was encountered while reading module 'FrontEnd.Implementation': Assembly reference cannot be resolved: System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35. [C:\Project\FrontEnd\02-Implementation\02-Implementation.csproj]
6>MSBUILD : error : CA0058 : The referenced assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' could not be found. This assembly is required for analysis and was referenced by: S:\Deliverables\FrontEnd\bin\FrontEnd.Implementation.dll. [C:\Project\FrontEnd\02-Implementation\02-Implementation.csproj]
Поскольку мы используем ASP.NET MVC 4, на эту DLL версии 3.0 косвенно ссылается одна из наших ссылок. Например, RazorGenerator ссылается на версию 3.0.0.0. Возможно, и другие. Насколько я могу судить, новой версии RazorGenerator нет.
Версии System.Web.Mvc, которые я вижу в GAC, следующие: 3.0.50813.1, 4.0.40804.0 и 5.0.20821.0.
Я удалил ссылку на System.Web.Mvc из наших проектов и вместо этого добавил Mvc как пакет NuGet. Это исправляет нашу компиляцию, но FxCop по-прежнему не работает из-за косвенных ссылок.
Если потребуется дополнительная информация, дайте мне знать.