示例#1
0
        private void PerformConfigurationPropertyAndItemMappings(
            CommonCompilerOptions compilerOptions,
            CommonCompilerOptions configurationCompilerOptions,
            ProjectPropertyGroupElement propertyGroup,
            ProjectItemGroupElement itemGroup,
            ITransformApplicator transformApplicator,
            string projectDirectory,
            ProjectType projectType,
            ProjectRootElement csproj)
        {
            foreach (var transform in _propertyTransforms)
            {
                var nonConfigurationOutput = transform.Transform(compilerOptions);
                var configurationOutput    = transform.Transform(configurationCompilerOptions);

                if (!PropertiesAreEqual(nonConfigurationOutput, configurationOutput))
                {
                    transformApplicator.Execute(configurationOutput, propertyGroup, mergeExisting: true);
                }
            }

            foreach (var includeContextTransformExecute in _includeContextTransformExecutes)
            {
                var nonConfigurationOutput = includeContextTransformExecute(compilerOptions, projectDirectory);
                var configurationOutput    =
                    includeContextTransformExecute(configurationCompilerOptions, projectDirectory);

                configurationOutput = RemoveDefaultCompileAndEmbeddedResourceForWebProjects(
                    configurationOutput,
                    projectType,
                    csproj);

                transformApplicator.Execute(configurationOutput, itemGroup, mergeExisting: true);
            }
        }
        public MigratePackageDependenciesAndToolsRule(ITransformApplicator transformApplicator = null)
        {
            _transformApplicator     = transformApplicator ?? new TransformApplicator();
            _projectDependencyFinder = new ProjectDependencyFinder();

            _supportedPackageVersions = new SupportedPackageVersions();
        }
示例#3
0
        private void PerformConfigurationPropertyAndItemMappings(
            CommonCompilerOptions compilerOptions,
            CommonCompilerOptions configurationCompilerOptions,
            ProjectPropertyGroupElement propertyGroup,
            ProjectItemGroupElement itemGroup,
            ITransformApplicator transformApplicator,
            string projectDirectory)
        {
            foreach (var transform in _propertyTransforms)
            {
                var nonConfigurationOutput = transform.Transform(compilerOptions);
                var configurationOutput    = transform.Transform(configurationCompilerOptions);

                if (!PropertiesAreEqual(nonConfigurationOutput, configurationOutput))
                {
                    transformApplicator.Execute(configurationOutput, propertyGroup);
                }
            }

            foreach (var includeContextTransformExecute in _includeContextTransformExecutes)
            {
                var nonConfigurationOutput = includeContextTransformExecute(compilerOptions, projectDirectory);
                var configurationOutput    = includeContextTransformExecute(configurationCompilerOptions, projectDirectory).ToArray();

                transformApplicator.Execute(configurationOutput, itemGroup, mergeExisting: true);
            }
        }
示例#4
0
        private void PerformPropertyAndItemMappings(
            CommonCompilerOptions compilerOptions,
            ProjectPropertyGroupElement propertyGroup,
            ProjectItemGroupElement itemGroup,
            ITransformApplicator transformApplicator,
            string projectDirectory,
            ProjectType projectType,
            ProjectRootElement csproj)
        {
            foreach (var transform in _propertyTransforms)
            {
                transformApplicator.Execute(transform.Transform(compilerOptions), propertyGroup, mergeExisting: true);
            }

            foreach (var includeContextTransformExecute in _includeContextTransformExecutes)
            {
                var transform = includeContextTransformExecute(compilerOptions, projectDirectory, projectType);

                if (transform != null)
                {
                    transformApplicator.Execute(
                        transform,
                        itemGroup,
                        mergeExisting: true);
                }
            }
        }
示例#5
0
        private void PerformPropertyAndItemMappings(
            CommonCompilerOptions compilerOptions,
            ProjectPropertyGroupElement propertyGroup,
            ProjectItemGroupElement itemGroup,
            ITransformApplicator transformApplicator,
            string projectDirectory,
            ProjectType projectType,
            ProjectRootElement csproj)
        {
            foreach (var transform in _propertyTransforms)
            {
                transformApplicator.Execute(transform.Transform(compilerOptions), propertyGroup, mergeExisting: true);
            }

            foreach (var includeContextTransformExecute in _includeContextTransformExecutes)
            {
                var transform = includeContextTransformExecute(compilerOptions, projectDirectory);

                transform = RemoveDefaultCompileAndEmbeddedResourceForWebProjects(
                    transform,
                    projectType,
                    csproj);

                transformApplicator.Execute(
                    transform,
                    itemGroup,
                    mergeExisting: true);
            }
        }
示例#6
0
        public MigrateTFMRule(ITransformApplicator transformApplicator = null)
        {
            _transformApplicator = transformApplicator ?? new TransformApplicator();

            _transforms = new AddPropertyTransform <NuGetFramework>[]
            {
                OutputPathTransform,
                FrameworkIdentifierTransform,
                FrameworkVersionTransform
            };
        }
示例#7
0
        public MigrateRootOptionsRule(ITransformApplicator transformApplicator = null)
        {
            _transformApplicator = transformApplicator ?? new TransformApplicator();

            _transforms = new[]
            {
                DescriptionTransform,
                CopyrightTransform,
                TitleTransform,
                LanguageTransform,
                VersionTransform
            };
        }
示例#8
0
        public MigrateBuildOptionsRule(
            CommonCompilerOptions configurationBuildOptions,
            ProjectPropertyGroupElement configurationPropertyGroup,
            ProjectItemGroupElement configurationItemGroup,
            ITransformApplicator transformApplicator = null)
        {
            _configurationBuildOptions  = configurationBuildOptions;
            _configurationPropertyGroup = configurationPropertyGroup;
            _configurationItemGroup     = configurationItemGroup;
            _transformApplicator        = transformApplicator ?? new TransformApplicator();

            ConstructTransformLists();
        }
示例#9
0
        public MigrateBuildOptionsRule(
            string configuration,
            NuGetFramework framework,
            ProjectPropertyGroupElement configurationPropertyGroup,
            ProjectItemGroupElement configurationItemGroup,
            ITransformApplicator transformApplicator = null)
        {
            _configuration = configuration;
            _framework     = framework;
            _configurationPropertyGroup = configurationPropertyGroup;
            _configurationItemGroup     = configurationItemGroup;
            _transformApplicator        = transformApplicator ?? new TransformApplicator();

            ConstructTransformLists();
        }
示例#10
0
        private void PerformConfigurationPropertyAndItemMappings(
            CommonCompilerOptions compilerOptions,
            CommonCompilerOptions configurationCompilerOptions,
            ProjectPropertyGroupElement propertyGroup,
            ProjectItemGroupElement itemGroup,
            ITransformApplicator transformApplicator,
            string projectDirectory,
            ProjectType projectType,
            ProjectRootElement csproj)
        {
            foreach (var transform in _propertyTransforms)
            {
                var nonConfigurationOutput = transform.Transform(compilerOptions);
                var configurationOutput    = transform.Transform(configurationCompilerOptions);

                if (!PropertiesAreEqual(nonConfigurationOutput, configurationOutput))
                {
                    transformApplicator.Execute(configurationOutput, propertyGroup, mergeExisting: true);
                }
            }

            foreach (var removeContextTransformExecutes in _removeContextTransformExecutes)
            {
                var nonConfigurationOutput =
                    removeContextTransformExecutes(compilerOptions, projectDirectory, projectType);
                var configurationOutput =
                    removeContextTransformExecutes(configurationCompilerOptions, projectDirectory, projectType);

                if (configurationOutput != null &&
                    !ItemRemovesAreEqual(nonConfigurationOutput, configurationOutput))
                {
                    transformApplicator.Execute(configurationOutput, itemGroup, mergeExisting: true);
                }
            }

            foreach (var includeContextTransformExecute in _includeContextTransformExecutes)
            {
                var nonConfigurationOutput =
                    includeContextTransformExecute(compilerOptions, projectDirectory, projectType);
                var configurationOutput =
                    includeContextTransformExecute(configurationCompilerOptions, projectDirectory, projectType);

                if (configurationOutput != null)
                {
                    transformApplicator.Execute(configurationOutput, itemGroup, mergeExisting: true);
                }
            }
        }
示例#11
0
        private void PerformConfigurationPropertyAndItemMappings(
            CommonCompilerOptions compilerOptions,
            CommonCompilerOptions configurationCompilerOptions,
            ProjectPropertyGroupElement propertyGroup,
            ProjectItemGroupElement itemGroup,
            ITransformApplicator transformApplicator,
            string projectDirectory)
        {
            foreach (var transform in _propertyTransforms)
            {
                var nonConfigurationOutput = transform.Transform(compilerOptions);
                var configurationOutput    = transform.Transform(configurationCompilerOptions);

                if (!PropertiesAreEqual(nonConfigurationOutput, configurationOutput))
                {
                    transformApplicator.Execute(configurationOutput, propertyGroup);
                }
            }

            foreach (var includeContextTransformExecute in _includeContextTransformExecutes)
            {
                var nonConfigurationOutput = includeContextTransformExecute(compilerOptions, projectDirectory);
                var configurationOutput    = includeContextTransformExecute(configurationCompilerOptions, projectDirectory).ToArray();

                if (configurationOutput != null && nonConfigurationOutput != null)
                {
                    // TODO: HACK: this is leaky, see top comments, the throw at least covers the scenario
                    ThrowIfConfigurationHasAdditionalExcludes(configurationOutput, nonConfigurationOutput);
                    RemoveCommonIncludes(configurationOutput, nonConfigurationOutput);
                    configurationOutput = configurationOutput.Where(i => i != null && !string.IsNullOrEmpty(i.Include)).ToArray();
                }

                // Don't merge with existing items when doing a configuration
                transformApplicator.Execute(configurationOutput, itemGroup, mergeExisting: false);
            }
        }
示例#12
0
 public MigrateTFMRule(ITransformApplicator transformApplicator = null)
 {
     _transformApplicator = transformApplicator ?? new TransformApplicator();
 }
示例#13
0
 public AddDefaultsToProjectRule(ITransformApplicator transformApplicator = null)
 {
     _transformApplicator = transformApplicator ?? new TransformApplicator();
 }
示例#14
0
 public MigrateJsonPropertiesRule(ITransformApplicator transformApplicator = null)
 {
     _transformApplicator = transformApplicator ?? new TransformApplicator();
 }
示例#15
0
 public TransformApplicator(ITransformApplicator propertyTransformApplicator = null, ITransformApplicator itemTransformApplicator = null)
 {
     _propertyTransformApplicator = propertyTransformApplicator ?? new PropertyTransformApplicator();
     _itemTransformApplicator     = propertyTransformApplicator ?? new ItemTransformApplicator();
 }
示例#16
0
 public MigrateProjectDependenciesRule(ITransformApplicator transformApplicator = null)
 {
     _transformApplicator     = transformApplicator ?? new TransformApplicator();
     _projectDependencyFinder = new ProjectDependencyFinder();
 }
 public MigrateRuntimesRule(ITransformApplicator transformApplicator = null)
 {
     _transformApplicator = transformApplicator ?? new TransformApplicator();
 }
 public MigrateAssemblyInfoRule(ITransformApplicator transformApplicator = null)
 {
     _transformApplicator = transformApplicator ?? new TransformApplicator();
 }
示例#19
0
 public MigrateBuildOptionsRule(ITransformApplicator transformApplicator = null)
 {
     _transformApplicator = transformApplicator ?? new TransformApplicator();
     ConstructTransformLists();
 }
示例#20
0
 public MigratePublishOptionsRule(ITransformApplicator transformApplicator = null)
 {
     _transformApplicator = transformApplicator ?? new TransformApplicator();
 }
示例#21
0
 public WorkaroundOptionsRule(ITransformApplicator transformApplicator = null)
 {
     _transformApplicator = transformApplicator ?? new TransformApplicator();
 }