我已经为 Visual Studio 2015 和 2017 构建了 Visual Studio 扩展。我在 2017 年开发了它,并且在 2017 年一切都运行良好。
当我在 VS 2015 上安装它时,我收到一条错误消息,指出它无法加载我的包。在 Visual Studio
ActivityLog.xml
文件中,我看到以下错误。
如何让 VS 2015 和 2017 都运行该扩展?
CreateInstance failed for package [MainWindowPackage]
Source: 'mscorlib'
Description: Could not load file or assembly 'Microsoft.VisualStudio.Shell.15.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Shell.15.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.VisualStudio.Shell.15.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type) at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) at System.Activator.CreateInstanceFromInternal(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo) at System.AppDomain.CreateInstanceFrom(String assemblyFile, String typeName)
根据错误消息,您的扩展依赖于 Microsoft.VisualStudio.Shell.15.0,这是一个 VS 2017 程序集。所以它不包含在你的 VS 2015 中。
如果您希望您的扩展支持多个版本的 Visual Studio,您需要让您的 VSPackage 仅使用您支持的 Visual Studio 最早版本的功能,并编程您的 VSPackage 以适应其中的 Visual Studio 版本它正在运行。您可以阅读此文档:https://learn.microsoft.com/en-us/visualstudio/extensibility/choosing- Between-shared-and-versioned-vspackages
您也可以参考文档支持多个版本的Visual Studio。
自定义安装路径为“C:\Users\UserName\AppData\Local\Microsoft\VisualStudio .0\Extensions\”。请检查您的扩展路径以确保已安装 Microsoft.VisualStudio.Shell.15.0。
您应该在扩展中引用 Microsoft.VisualStudio.Shell.14.0 和 VS 2015 中的其他程序集以支持 VS 2015/2017。
我有类似的问题很长一段时间了。
CreateInstance failed for package [Microsoft.Data.SAPClient.Design.SAPDataProviderPackage]
Source: 'mscorlib' Description: Could not load file or assembly 'file:///C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\$=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server\3.0\InstallPath$Microsoft.Data.SAPClient.Design.dll'
or one of its dependencies. The system cannot find the file specified.
我必须打开 Visual Studio 安装程序,找到此 VS 组件 (BizTalk) 并将其删除。