FWIW: Windows 7 64bit, Compact Framework v3.5, FxCop v1.36 (работает fxcopcmd.exe)
У меня проблемы с корректной работой FxCop 1.36. Я анализирую компактное фреймворковое приложение с правилами глобализации от http://www.dotneti18n.com/Downloads.aspx
.exe, который я анализирую, имеет ссылку на сторонний пакет управления: resco.outlookcontrols.cf.dll. Когда fxcop запускает и анализирует мое приложение, оно взрывается, говоря, что не может найти эту сборку. Я проверил, перепроверил и еще 30 раз проверил, что все сборки, необходимые для запуска приложения, находятся в той же папке, что и анализируемая, включая файлы восстановления.
с помощью программы просмотра журнала Fusion, я могу получить эту информацию:
LOG: DisplayName = Resco.OutlookControls.CF3, Version=6.7.0.0, Culture=neutral, PublicKeyToken=7444f602060105f9
(Fully-specified)
LOG: Appbase = file:///D:/Dev/TA/Tools/FxCop/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: D:\Dev\TA\Tools\FxCop\fxcopcmd.exe.Config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Post-policy reference: Resco.OutlookControls.CF3, Version=6.7.0.0, Culture=neutral, PublicKeyToken=7444f602060105f9
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///D:/Dev/TA/Tools/FxCop/Resco.OutlookControls.CF3.DLL.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.DLL.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Rules/Resco.OutlookControls.CF3.DLL.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Rules/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.DLL.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Engines/Introspection/Resco.OutlookControls.CF3.DLL.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Engines/Introspection/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.DLL.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Resco.OutlookControls.CF3.EXE.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.EXE.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Rules/Resco.OutlookControls.CF3.EXE.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Rules/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.EXE.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Engines/Introspection/Resco.OutlookControls.CF3.EXE.
LOG: Attempting download of new URL file:///D:/Dev/TA/FxCop/Engines/Introspection/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.EXE.
LOG: All probing URLs attempted and failed.
вот часть, которая действительно меня расстраивает: документация fxcop (здесь http://msdn.microsoft.com/en-us/library/bb429449%28VS.80%29.aspx) говорит, что она загрузит все ссылочные сборки из той же папки, в которой находится анализируемая сборка, или из папки, на которую ссылаются с помощью параметра / directory: командной строки.
это не соответствует задокументированным обещаниям. файл существует в той же папке, что и анализируемый, и я попытался передать папку в качестве параметра / directory: командной строки. я даже установил элемент AssemblyReferenceDirectories в файле .fxcop. все же единственные места, которые ищутся, согласно журналу слияния, являются «обычными» местами для исследования.
и fyi - я попытался обновить настройки 'probeing' в файле fxcopcmd.exe.config - не будет работать, поскольку папка анализируемой сборки не находится в корневой папке инструмента fxcop, поэтому она дает мне предупреждение о том, что оно не будет проверено.
У кого-нибудь еще есть эта проблема? у кого-нибудь есть решение?
спасибо