【发布时间】:2018-08-14 09:33:08
【问题描述】:
我开发了一个简单的 Visual Studio 包,它使用 MEF 声明标记类型:
[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 文件夹并加载我的扩展。
一切正常,但是当我卸载扩展(删除文件夹并再次触摸“extensions.configurationchanged”)时,Visual Studio 仍然尝试从未安装的扩展加载组件。日志包含以下错误:
错误仍然无法加载 MEF 组件 DLL:无法加载文件或程序集“YourAssembly.dll” 或其依赖项之一。该系统找不到指定的文件。 C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\YourExtension\YourAssembly.dll Microsoft.VisualStudio.CommonIDE.ExtensibilityHosting.VsShellComponentModelHost 2016/10/12 15:57:30.669
ERROR 找不到路径的一部分 '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\EXTENSIONS\YourExtension\YourAssembly.dll Microsoft.VisualStudio.CommonIDE.ExtensibilityHosting.VsShellComponentModelHost 2016/10/12 15:57:31.170
Visual Studio 2010、2012 和 2013 不会在相同的情况下记录任何错误。
只有清除 ComponentModelCache 才能消除 Visual Studio 2015 中的这些错误。
如何在自定义安装程序中完全删除我的扩展程序?
【问题讨论】:
标签: visual-studio-2015 windows-installer mef vsix