Upgrader: do not include Micrsoft.Diagnostic.Tracing.EventSource#1144
Merged
jamill merged 1 commit intoMay 10, 2019
Merged
Conversation
The upgrade verb attempts to copy Microsoft.Diagnostic.Tracing.EventSource when copying the ProductUpgrader to the temporary directory to run. If this file is not present, then the upgrade verb will fail. This following commit removes this file: cbe5787 ("Remove in-proc ETW trace event listener", 2019-02-18) Clean installs of VFS4G that include this commit will no longer have this file in the installation directory, and will not be able to upgrade. This dll is no longer needed or installed during installation, so we remove it from the list of files copied over for upgrade. This is a quick fix - we will also see how to make this less fragile. One option might be to install "upgrader app" into its own directory under the VFS For Git installation directory, and then just copy the directory to the temp location, instead of providing a list of files that need to be kept in sync. (cherry picked from commit f107731)
wilbaker
approved these changes
May 10, 2019
jamill
added a commit
to jamill/VFSForGit
that referenced
this pull request
Jun 1, 2019
When upgrading VFS for Git via the built-in upgrade logic, the upgrade verb will copy the upgrader application to a temporary directory, and run the upgrade app from the temporary directory. The main reason for this is so that the upgrade application can update the original application without open file handles getting in the way (and preventing the deletion of the application that is being updated). The upgrade verb currently has a hard coded list of dependencies (files) required for the upgrader application to run. This can be fragile as we need to keep this list in sync with the actual dependencies, across multiple platforms. This can easily break if the dependencies change, and we update the list of files included with the installer, but not with the upgrader application. A specific occurrence of this happened in microsoft#1144. Instead, just copy over the whole VFS for Git application directory when creating a temporary copy of the upgrader application to run. We might copy over a few additional files, but this should not cause any noticeable downsides.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The upgrade verb attempts to copy
Microsoft.Diagnostic.Tracing.EventSource when copying the
ProductUpgrader to the temporary directory to run. If this file is not
present, then the upgrade verb will fail. This following commit removes
this file:
cbe5787 ("Remove in-proc ETW trace event listener", 2019-02-18)
Clean installs of VFS4G that include this commit will no longer have
this file in the installation directory, and will not be able to
upgrade.
This dll is no longer needed or installed during installation, so we
remove it from the list of files copied over for upgrade.
This is a quick fix - we will also see how to make this less fragile.
One option might be to install "upgrader app" into its own directory
under the VFS For Git installation directory, and then just copy the
directory to the temp location, instead of providing a list of files
that need to be kept in sync.
(cherry picked from commit f107731)