Added support for `--portable-mode` and `--server-datafolder` for the CLI, ServerUtil, and Agent.
Fixed a few places where file reads were not cached properly.
Moved some responsibilities of UpdaterManager into DataFolderManager.
This now supports storing `machineid.txt` and `installation.txt` inside the path pointed to by `--server-datafolder` or alternatively with `--portable-mode`.
It is possible that some fringe backwards compatibility is lost with this update.
Fixed an issue with AutoUpdater crashing on check/download.
This fixes#5902
* Updated reporting values.
The reporter module can now emit the following extra values:
- operating-system
- installation-type
- destination-type
- next-scheduled-run
When running from the built-in scheduler, it will automatically set `--next-scheduled-run` so it is applied to the reporting data.
* Implemented an improved machine name reader.
This fixes#5907
* Added a guard against sending too much of the destination url as the destination.
* Fixed reading Windows Machine name
* Removed extra Windows logic as it has no effect
* Fixed nullability warnings in `Utility.cs`
* Fixed a number of nullability issues and warnings
* More nullable fixes
* Fixed the overwrite issue
* Fixed additional nullability issues
* Removed additional nullability issues
* More nullability fixes and added some xmldoc
* Added more xmldocs and removed an unused argument
* Removed more warnings
Avoids setting deprecated `Thread.CurrentCulture` and `Thread.CurrentUICulture`, using `CultureInfo.CurrentCulture` instead.
Fixed a few legacy places where incorrect string compares were used.
This is a proposal for replacing the deprecated WebClient with the HttpClient.
This commit implements the core functionality following the HttpClientFactory pattern as suggested by the framework. It also supports an alternative approach in areas where the HttpClient pattern is not desirable.
The first backend component to be migrated is WebDav, and the HttpClient pattern is also applied to the update downloader.
Once merged, other backend components can be migrated, eventually removing the deprecated WebClient from the codebase.
Additionally, the debug-profind-file option from webdav, which was a remnant from early development, is removed as it is no longer useful for debugging different webdav server responses.
Removed the text from the update folder as it is no longer being used.
Added a new `machineid.txt` file that controls the machine-id.
De-coupled the machine-id from the installationid as the latter is used for usage reporting, and should not be connected to the machine-id
Fixed some issues with the manifest urls.
Changed to records and nullable in some places.
Regenerated the test-keys to use RSA208.
Changed to using built-in JSON for manifest.
This fixes#5145
If we simply throw the inner exception, the stack trace is lost. If we
throw a new exception with the originating exception as the inner
exception, the user is not provided with any meaningful information.
After we removed the tilde expansion in revision c9aa6cf5fb ("Avoid
performing tilde expansion"), the Utility.ExpandEnvironmentVariables
method simply called System.Environment.ExpandEnvironmentVariables. We
can simplify the code by just referencing the built-in method directly.
When the code following the await can be executed on any thread, it's
recommended to use ConfigureAwait(false) to avoid unnecessary context
switching and potential deadlocks.