Error upgrading ReadyRoll extension in Visual Studio 2017 Enterprise
Published 15 March 2018
Some customers have reported encountering difficulties while attempting to install/upgrade/uninstall the extension in Visual Studio 2017, or indeed when the Visual Studio installer attempts to upgrade it as part of an update to the IDE. The error reported might look something like this:
[3254:0006][2018-03-03T12:22:30] Error: Package 'Redgate.ReadyRoll,version=1.14.22.6498' failed to install. System.IO.IOException:
The file 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\ReadyRoll\RedGate.Versioning.Core.Baseline.dll' already exists.
Typically the following steps will have been followed to cause the issue (although unfortunately the error is not reliably reproduced):
- Install Visual Studio 2017 Enterprise edition, with the Data Processing workload selected
- Within the Tools and Extensions dialog, select the ReadyRoll for VS2017 extension and click Update
- When the next update to VS2017 is released, use the Visual Studio installer to apply the update
Note that the problem has been reported as occurring at either step 2 or 3. In order to assist Microsoft addressing the root cause of the issue, we would really appreciate it if you could run the VS Log Collection tool and send the results to support@red-gate.com.
Apologies for the inconvenience caused by this problem.
Resolution
1. Launch the Visual Studio Installer application, click Modify, switch to the Individual Components tab. Within the “Cloud, database and server” section, uncheck "ReadyRoll Core" (alternatively, it may appear as "ReadyRoll for VS2017"). Proceed to uninstall the component.
2. Delete the following folders from your system:
- C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\ReadyRoll
- C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\001rr241.rgs
Note that the base path up to "Enterprise" may vary, depending on whether you have multiple instances of Visual Studio installed on your machine and which of those instances you installed ReadyRoll into.
.