https://bugs.winehq.org/show_bug.cgi?id=48023
--- Comment #6 from Lorenzo Ferrillo lorenzofer@live.it --- Created attachment 71911 --> https://bugs.winehq.org/attachment.cgi?id=71911 actctx use build_assembly_dir to assign assembly->dir field
Update: with the latest ncrypt patches from Santino Mazza, the vs WebInstaller can be launched directly without the manual ODT workaround (winetricks d3dcompiler_47 is a prequisite) then installed dotnet472 with winetricks and msxml6 (note for me installing msxml6 before dotnet seems to make dotnet461 and dotnet462 hang with a deadlock, when using gui mode, but it succeeded the time I tried quiet mode, however more testing is required) Selected C++ component in VS installer. Install complete, but the Microsoft.DiagnosticsHub.Collection.StopService.Install give an error "c:\windows\syswow64\sc.exe" stop VSStandardCollectorService150 (return Invalid function) The first start of devenv.exe doesn't work. A devenv.exe.config it's generated and then read from AppData\Local (and not from the Program Files folder) but it's empty. You can see in the ActivityLog.xml a list of not found assemblies, but they are present and installed. This happen becouse actctx doesn't set properly the assembly directory. In another issue on this tracker there is an old patch ,that I have rebased, and attached. A workaround for this is to copy the devenv.exe.config from the deven.exe dir to Appdata\local dir and changing relativeBindForResources to "false" After this passage, the Login UI shows up but: 1) It hangs immediatly and the log spam threads blocked loader and heap CS 2) As 1 but give a warning message about component not loading 3) The program termiate with a runtime termination. 4) Program terminate with a dotnet exception System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at Microsoft.Internal.VisualStudio.Shell.Interop.IVsPackageManagerPrivate.LoadPackageWithContext(Guid& packageGuid, Int32 reason, Guid& context)
The ActivityLog has some errors: Failed to set Public Key Token 80070057 - E_INVALIDARG Binding Redirect / CodeBase entry from configuration hive is malformed, ignoring. Software\Microsoft\VisualStudio\16.0_0c573400_Config\RuntimeConfiguration\dependentAssembly\codeBase{7E3052B2-FB42-4E38-B22C-1FD281BD4413} 80070057 - E_INVALIDARG Binding Redirect / CodeBase entry from configuration hive is malformed, ignoring. Software\Microsoft\VisualStudio\16.0_0c573400_Config\RuntimeConfiguration\dependentAssembly\codeBase{938D3E45-5067-45C4-9349-5E939A639CBF} 80070057 - E_INVALIDARG (Note these keys doesn't exist in regedit, and Software\Microsoft\VisualStudio\16.0_0c573400_Config is linked to keys that should be written to the privateregistry.bin with RegLoadAppKey. Maybe these keys were supposed to be in the real registry and they are shadowed by the RegLoadAppKey Hack, or they are written to the file in another way ) Failed to find CTMENU resource '#1000' in loaded UI library. Loading UI library {2FFE45C4-5C73-493C-B187-F2E955FF875E} 800a006f Error loading UI library for package Microsoft.VisualStudio.LanguageServices.TypeScript.TypeScriptPackage, Microsoft.VisualStudio.LanguageServices.TypeScript, Version=16.0.0.0, Culture=neutral. HrLoadNativeUILibrary failed with 0x800a006f. SetSite failed for package [Visual Studio Common IDE Package]Source: 'mscorlib' Description: Value cannot be null. Parameter name: type System.ArgumentNullException: Value cannot be null. Parameter name: type at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.Activator.CreateInstance(Type type) at Microsoft.VisualStudio.CommonIDE.PreviewFeatures.UsePreviewSdk.IsPreviewChannel()
the program also try to load a OLB typelib with TLB_ReadTypeLib in this case dte80a.olb, but it search it in C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE instead of C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Automation where they are togheter with their manifest.
Note that not all these errors appear every run, it's probably initializing something in mutlithreaded ways, and depending on what run (and fail) before it hang/ crash in different spots.
Note the attached patch seems to solve some errors from ngen.exe Optimization Service during dotnet40 (and following) installation. Not sure if these errors were problematic or not. The {6D5140C1-7436-11CE-8034-00AA006009FA}\ProxyStubClsid32 is {B8DA6310-E19B-11D0-933C-00A0C90DCAA9} (ActXPrxy.dll) not {A4A1A128-768F-41E0-BF75-E4FDDD701CBA} (ieproxy.dll) But replacing them doesn't make any difference. Also in here ActXPrxy.dll is B8DA6310-E19B-11D0-933C-00A0C90DCAA9 not C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6 (non-existant) as in Bruni comment. Other entry mentioned by Bruni are equals.