Я использую SQLServer Management Studio (2005), и у меня там довольно длинный список серверов, и я хотел бы избавиться от некоторых из них, которые больше не используются, без необходимости заново настраивать их все.
Я знаю что C:\Users\*\AppData\Roaming\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat
можно удалить, и это удалит ВСЕ записи, но есть ли способ просто удалить некоторые из них?
(Информация о кодировании)
Я посмотрел на файл, и это сериализованный BLOB-объект из Microsoft.SqlServer.Express.ConnectionDlg.dll
(Персонализация класса) в каталоге приложений, но все методы являются частными. Поэтому я не могу просто создать экземпляр этого, а затем вызвать Remove для записей.
Обновить Я написал статью о CodeProject, в которой объясняется, как этого можно достичь. http://www.codeproject.com/KB/vb/AlterSQL2005MRU.aspx
После долгих взломов с Reflection я решил эту проблему. Мне удалось написать ОЧЕНЬ уродливое приложение, которое использует ссылку на вышеупомянутую DLL, а затем может войти и удалить конкретную запись из списка. Если людям интересно, я могу разместить программу на CodeProject как способ сделать это. Сообщите мне через голосование или комментарии.
Это действительно невозможно, даже хакерским / неподдерживаемым способом. См. Следующую запись в блоге и соответствующий отчет об ошибке Microsoft Connect: