Esempio n. 1
0
        public SvcutilBootstrapper(SvcutilOptions options)
        {
            this.Options            = options ?? throw new ArgumentNullException(nameof(options));
            this.Options.ProviderId = $"{Tool.ToolName}-bootstrap";
            this.Options.Version    = Tool.PackageVersion;

            // reset options that don't apply to the bootstrapper and that prevent bootstrapping recursion.
            this.Options.NoBootstrapping  = true;
            this.Options.NoLogo           = true;
            this.Options.NoProjectUpdates = true;

            // the operational context has some control over what messages to display on the UI.
            if (this.Options.ToolContext.HasValue && this.Options.ToolContext.Value <= OperationalContext.Global)
            {
                this.Options.ToolContext = OperationalContext.Bootstrapper;
            }

            ProjectDependency.RemoveRedundantReferences(this.Options.References);
        }
Esempio n. 2
0
        private static async Task GenerateParamsFileAsync(CommandProcessorOptions options, ILogger logger, CancellationToken cancellationToken)
        {
            // params file is generated on first run, never on update and never by the bootstrapper.

            if (!(options.IsUpdateOperation || options.NoProjectUpdates == true))
            {
                using (var safeLogger = await SafeLogger.WriteStartOperationAsync(logger, "Generating svcutil params file ...").ConfigureAwait(false))
                {
                    var updateOptions = options.CloneAs <UpdateOptions>();
                    updateOptions.ProviderId = Tool.ToolName;
                    updateOptions.Version    = Tool.PackageVersion;

                    ProjectDependency.RemoveRedundantReferences(updateOptions.References);

                    updateOptions.MakePathsRelativeTo(options.OutputDir);

                    var paramsFile = Path.Combine(options.OutputDir.FullName, CommandProcessorOptions.SvcutilParamsFileName);
                    await AsyncHelper.RunAsync(() => updateOptions.Save(paramsFile), cancellationToken).ConfigureAwait(false);
                }
            }
        }