2016-10-12 2 views
0

я разработать простой визуальный пакет студии, объявляющий тип маркера с помощью MEF:Каков правильный способ удаления расширения из MSI?

[Export(typeof(EditorFormatDefinition))] 
[Name("MyMarkerDefinition")] 
[UserVisible(true)] 
public class MyMarkerDefinition : MarkerFormatDefinition 
{ 
    // ... 
} 

Установщик (это не VSIX) расширение копии для программирования файлов:

C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\ 

, а затем нажмите (изменить дату изменения) файл «extensions.configurationchanged» в этой папке, поэтому папка «Расширения сканирования Visual Studio» загружает мое расширение.

Все работает нормально, но когда я удаляю расширение (удаляю папку и снова нажимаю «extensions.configurationchanged»), Visual Studio все еще пытается загрузить компоненты из uninistalled extension. Журнал содержит следующие ошибки:

ERROR еще не в состоянии загрузить MEF компонент DLL: Не удалось загрузить файл или сборку «YourAssembly.dll» или один из его зависимостей. Система не может найти указанный файл. C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ РАСШИРЕНИЯ \ YourExtension \ YourAssembly.dll Microsoft.VisualStudio.CommonIDE.ExtensibilityHosting.VsShellComponentModelHost 2016/10/12 15: 57: 30,669

ОШИБКА Не удалось найти часть пути 'C: \ PROGRAM FILES (X86) \ MICROSOFT VISUAL STUDIO 14.0 \ COMMON7 \ IDE \ EXTENSIONS \ YourExtension \ YourAssembly.dll'. C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ РАСШИРЕНИЯ \ YourExtension \ YourAssembly.dll Microsoft.VisualStudio.CommonIDE.ExtensibilityHosting.VsShellComponentModelHost 2016/10/12 15: 57: 31,170

Visual Studio 2010, 2012 и 2013 не регистрирует ошибок в одном и том же случае.

Только очистка ComponentModelCache устраняет эти ошибки в Visual Studio 2015.

Как полностью удалить мое расширение в пользовательской программе установки?

ответ

Смежные вопросы