我刚刚安装了带有SDK的Visual Studio 2019,当我尝试运行RegPkg.exe时,看到以下错误。我没有在计算机上安装任何其他VS实例,但是我很困惑为什么该错误报告的是版本15.0.0.0(即VS2017)。
有人可以帮助我解决此错误。
未处理的异常:System.IO.FileNotFoundException:无法加载 文件或程序集'Microsoft.VisualStudio.Shell.Framework, 版本= 15.0.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a'或 它的依赖项之一。系统找不到指定的文件。
在Microsoft.VisualStudio.Tools.RegPkg.Main(String []参数)
答案 0 :(得分:0)
我只是注意到使用VS 2017版本时,我得到了完全相同的错误消息。因此,它与您使用的版本无关。我什至没有安装2019。
Microsoft仅仅破坏了他们的SDK,该SDK显然已经被破坏了2年,没有人注意到。作为参考,我使用的是VS 2017 15.9.7,也安装了VSSDK。
我在构建的VSIX扩展中具有对该DLL的NuGet引用,因此我在.nuget包缓存中有一个副本(“%USERPROFILE%.nuget \ packages \ microsoft.visualstudio.shell.framework \ 15.9.28307 \ lib \ net45 \ Microsoft.VisualStudio.Shell.Framework.dll“)。我将该版本复制到regpkg.exe所在的文件夹中,并解决了错误(%VSSDK150INSTALL%\ VisualStudioIntegration \ Tools \ Bin)。
可能不是最好的解决方案,但是Microsoft需要修复其产品。我怀疑它是作为其2017产品重组的一部分而破裂的,因为他们还将扩展所需的所有程序集都添加到NuGet的依赖项中。我猜他们忘记了将该程序集保留在实际的VS安装文件夹中。
编辑:我一直在研究这个问题,显然该文件实际上与exe一起存在于lib子文件夹中。但是我发现的所有版本都不能与CreatePkgDef.exe一起实际使用,这是我的备份计划,因为它现在会引发此错误:
CreatePkgDef:错误:ArgumentException:没有Visual Studio 在此程序集中找到注册属性。组装应 包含属性的实例 在中定义的“ Microsoft.VisualStudio.Shell.RegistrationAttribute” 程序集'Microsoft.VisualStudio.Shell.Framework'版本'15 .0.0.0'
似乎可以使用regpkg.exe,尽管我没有尝试过所有选项的组合。