Visual Studio installer fails on AspNetDiagnosticP

2019-01-29 09:59发布

问题:

I have the problem described here. Any attempt to install AspNetDiagnosticPack.msi C:\ProgramData\Microsoft\VisualStudio\Packages\Microsoft.VisualStudio.AspNetDiagnosticPack.Msi,version=15.0.40314.0\AspNetDiagnosticPack.msi fails with error status: 1603. I cannot add or remove any component using VS installer now.

I have installed VS 2017 Professional as follows:

Microsoft Visual Studio Professional 2017 
Version 15.6.6
VisualStudio.15.Release/15.6.6+27428.2037
Microsoft .NET Framework
Version 4.7.02558

Installed Version: Professional

Visual C++ 2017   00370-20001-54960-AA753
Microsoft Visual C++ 2017

Visual F# Tools 10.1 for F# 4.1   00370-20001-54960-AA753
Microsoft Visual F# Tools 10.1 for F# 4.1

Application Insights Tools for Visual Studio Package   8.11.10402.2
Application Insights Tools for Visual Studio

ASP.NET and Web Tools 2017   15.0.40314.0
ASP.NET and Web Tools 2017

Azure App Service Tools v3.0.0   15.0.40215.0
Azure App Service Tools v3.0.0

C# Tools   2.7.0-beta3-62715-05. Commit Hash: db02128e6e3c4bdfc93e6ec425ac9162b4d4fe80
C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Common Azure Tools   1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

Cookiecutter   15.6.18072.2
Provides tools for finding, instantiating and customizing templates in cookiecutter format.

Dotfuscator Community Edition   5.32.1.6167-6ce295ebd
PreEmptive Protection - Dotfuscator CE

JavaScript Language Service   2.0
JavaScript Language Service

JavaScript Project System   2.0
JavaScript Project System

Microsoft Azure Tools   2.9
Microsoft Azure Tools for Microsoft Visual Studio 2017 - v2.9.51212.2

Microsoft JVM Debugger   1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual C++ Wizards   1.0
Microsoft Visual C++ Wizards

Microsoft Visual Studio VC Package   1.0
Microsoft Visual Studio VC Package

Node.js Tools   1.4.11027.3
Adds support for developing and debugging Node.js apps in Visual Studio

NuGet Package Manager   4.6.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.

ProjectServicesPackage Extension   1.0
ProjectServicesPackage Visual Studio Extension Detailed Info

Python   15.6.18072.2
Provides IntelliSense, projects, templates, debugging, interactive windows, and other support for Python developers.

Python - Django support   15.6.18072.2
Provides templates and integration for the Django web framework.

Python - IronPython support   15.6.18072.2
Provides templates and integration for IronPython-based projects.

Python - Profiling support   15.6.18072.2
Profiling support for Python projects.

SQL Server Data Tools   15.1.61801.210
Microsoft SQL Server Data Tools

TypeScript Tools   15.6.20202.3
TypeScript Tools for Microsoft Visual Studio

Visual Basic Tools   2.7.0-beta3-62715-05. Commit Hash: db02128e6e3c4bdfc93e6ec425ac9162b4d4fe80
Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Visual Studio Code Debug Adapter Host Package   1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio

I thought that the problem originated in having some remains from previous VS editions. I could not uninstall namely ASP.NET and Web Tools 2013.1. I have finally removed it after all by reinstalling VS 2015 and using the FixIt tool from this answer.. But still AspNetDiagnosticPack.msi fails the same way.

I also tried to uninstall the web development role completely, since I will probably not use it soon, but installation allways fails. Is there any workaround to make the VS installer work again?


The msi log is here.

Action 15:50:02: WebConfigInitialize.
Action start 15:50:02: WebConfigInitialize.
MSI (s) (B8:F4) [15:50:02:244]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIFF27.tmp, Entrypoint: Initialize
MSI (s) (B8:40) [15:50:02:244]: Generating random cookie.
MSI (s) (B8:40) [15:50:02:244]: Created Custom Action Server with PID 10588 (0x295C).
MSI (s) (B8:14) [15:50:02:306]: Running as a service.
MSI (s) (B8:14) [15:50:02:306]: Hello, I'm your 32bit Impersonated custom action server.
SFXCA: Failed to create new CA process via RUNDLL32. Error code: 2
CustomAction WebConfigInitialize returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 15:50:02: WebConfigInitialize. Return value 3.

But the problem is within custom action WebConfigInitialize and the log is no big help. I have observed that there was an entry Microsoft ASP.NET and Web Tools 2015.1 - Visual Studio 2015 when I ran the uninstaller tool - and this entry failed uninstalling. Perhaps the origin of my problems is that I once installed some beta verison of ASP.NET with Visual Studio 2015. I do not need ASP.NET for now, but I the VS 2017 installer is stuck on the error.

I have found WebToolsExtensionsVS14_rc2_48.msi in cached packages on my computer and uninstalling this package fails the same way with 1603 as the 2017 current package.

Action 8:30:41: WebConfigInitialize. 
Action start 8:30:42: WebConfigInitialize.
MSI (s) (48:BC) [08:30:42:012]: Creating MSIHANDLE (550) of type 790542 for thread 1980
MSI (s) (48:F0) [08:30:42:012]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIA2E1.tmp, Entrypoint: Initialize
MSI (s) (48!A0) [08:30:42:028]: Creating MSIHANDLE (551) of type 790531 for thread 928
SFXCA: Failed to create new CA process via RUNDLL32. Error code: 2
MSI (s) (48!A0) [08:30:42:028]: Closing MSIHANDLE (551) of type 790531 for thread 928
CustomAction WebConfigInitialize returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (s) (48:F0) [08:30:42:028]: Closing MSIHANDLE (550) of type 790542 for thread 1980
Action ended 8:30:42: WebConfigInitialize. Return value 3.

Similar problem here, that one ended with reninstalling his machine.

Or is there some tool that would show the dependencies of a particular MSI package?


The Developer's community link that is current and relevant to the problem is here.

It says:

We have fixed the problem in an upcoming release. We've addressed the managed custom action in the ASP.NET Diagnostic Pack that modifies the root web.config file to use a native code action. This should avoid the CLR errors previously reported when it tried to launch the managed code DLL during the install.

The fix for this is now in our latest Visual Studio Preview release. If you'd like to try out the fix, you can access the preview build here: https://www.visualstudio.com/vs/preview

Looks like there is no workaround except waiting for Microsoft's fix to that faliling custom action. I have ignored this recommendation at first because I did not check the date of comments properly but they are only one month old. But when I have tried to install the preview it ended with exactly the same error.

In 15.7.1 version the same error again.

回答1:

UPDATE: It looks like the issue might be a managed code custom action failing in the MSI in question (.NET code that can't run - for whatever reason 1, 2, 3).

Suggestion

I would first try to 1) do the reboot I recommend below - to clear the air and release any locks - then 2) disable security software / anti-virus and 3) try the install and enable logging as described below.

Core Deployment Problems

As deployment goes, problems tend to center around: 1) something is locked (in use - by other processes or other users logged on), 2) something is blocked (access / permissions denied), 3) dependencies are missing for your custom actions or the whole installer (runtime requirements not satisfied - for example missing .NET runtime version), 4) something is corrupted (data file, OS settings, malware is often the culprit here - or unwise tinkering), 5) there is an unexpected system state such as the disk being full, or more exotic the date and time is wrong, or there is a licensing issue or some other oddity, etc...

That is a very simplified list of causes - there are obviously many further issues, for example 6) localization errors: hard coded paths, erroneous parsing of dates and time, invalid characters in path names, etc... 7) file and path names are too long, 8) and the Microsoft specialty: weird and unexpected incompatibilities between products not thought to have a valid reason to conflict with each other (different versions of Visual Studio, etc...), etc..., but that is going way too far for your problem. Still, here is a generic "deployment problems" summary from some time back - just for reference.


Procedure

  1. Reboot: The first thing I would do is to reboot and then try to invoke the install the regular way. This is just to rule out this "simple solution" (which sometimes works). There could be files in use that the installer must replace in order to complete.

  2. Logging: In order to maximize the available debugging information you could log the install with verbose logging and debugging information (if you have access to the MSI itself).

    • Open an elevated command prompt (right click and run as administrator)
    • Change current directory (cd) until you get to: C:\ProgramData\Microsoft\VisualStudio\Packages\Microsoft.VisualStudio.AspNetDiagnosticPack.Msi,version=15.0.40314.0\
    • MSI Log: Run this command (adjusting paths as appropriate - especially for the log file): msiexec.exe /i AspNetDiagnosticPack.msi /L*vx C:\Test.log
      • Enable All: You can enable logging for all MSI files (slows installs, but great for advanced users): http://www.installsite.org/pages/en/msifaq/a/1022.htm (section: "Globally for all setups on a machine")
      • Interpret: How to interpret an MSI log file: http://www.installsite.org/pages/en/msifaq/a/1045.htm
    • Event Log: You can also have a look in the event log. Rather than repeating the procedure here, I will link to a similar, recent answer.
  3. Different User: This is unusual advice (and I haven't tried it), but sometimes you can succeed with difficult installs by creating a new local admin user on the machine, and then running the installer from there. It has to do with errors in the user profile. Not the first thing to try, but adding it as an option.