问题
I am new to Visual Studio 2017 Professional, and am trying to replicate my Vs2013 development environment including the installation of WiX extensions. Unfortunately when I attempt to install the Votive2017.vsix file I get an error message:
Can someone please assist. I have been struggling with this for the last three hours now, and it is driving me insane. My VS2017 install seems to be complete, sufficient at any rate to compile, run and debug the VS solution that I have ported over from VS2013.
Kind Regards Paul J.
Guys please find below the content of the install log as requested:
24/06/2019 11:00:44 - System.IO.FileLoadException: Could not load file or assembly 'Microsoft.VisualStudio.Threading, Version=15.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Microsoft.VisualStudio.Threading, Version=15.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at VSIXInstaller.SupportedVSSKU.get_Host()
at VSIXInstaller.SupportedVSSKU.CreateExtensionEngine()
at System.Lazy`1.CreateValue()
at System.Lazy`1.LazyInitValue()
at System.Lazy`1.get_Value()
at VSIXInstaller.App.GetExtensionEngineForApplicableSKU(SupportedVSSKU supportedSKU, IInstallableExtension installableExtension, List`1 applicableSKUs, Boolean isRepairSupported)
at VSIXInstaller.App.TryAddSkuToValidSkuList(SupportedVSSKU supportedSKU, IInstallableExtension extension, List`1 validSKUs, Boolean isRepairSupported)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
24/06/2019 11:00:44 - VSIXInstaller.NoApplicableSKUsException: This extension is not installable on any currently installed products.
at VSIXInstaller.App.GetInstallableData(String vsixPath, Boolean isRepairSupported, IEnumerable`1& skuData)
at VSIXInstaller.App.Initialize(Boolean isRepairSupported)
at VSIXInstaller.App.Initialize()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
Kind Regards Paul J.
回答1:
It's strange that the extension wants to load the Microsoft.VisualStudio.Threading.dll, since I've installed it successfully in one Community Edition where the assembly not exists.
1.Please download the latest Votive2017.vsix here.
2.And if the installation fails again for trying load that assembly:
If the assembly exists:
Update VS2017 to latest version. If it's already latest 15.9.13, try vs repair.(For 15.9.13, the
Assembly version
should be 15.8.0.0)Make sure you've got the Admin permission of your current machine. Check the FileLoadException Remarks and you'll find this exception has something to do with OS permission.
If the assembly not exists:
Still I recommend you update VS to latest version. Latest version 15.9.13 has fixed some issues.
After that, as a workaround you can
Go Tools menu =>Get Tools and Features
to installVS Extension Development workload
which contains the assembly it wants to load.Then please make sure you run the Windows as Admin when you trying to install the extension.
In addition: The path of the assembly should be:(Thanks for Hans's reminder!)
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\PrivateAssemblies
来源:https://stackoverflow.com/questions/56707610/how-to-install-wix-extensions-for-vs-2017