예제 #1
0
        private static void LogProperties(BatchLogger logger, string heading, IVsProjectProperties projectProperties)
        {
            IEnumerable <string> properties = projectProperties.Cast <ProjectProperty>()
                                              .Select(prop => $"{prop.Name}:{prop.Value}");

            logger.WriteLine($"{heading} -- ({string.Join(" | ", properties)})");
        }
        private static void AssertContainsProperty(string name, string value, IVsProjectProperties properties)
        {
            var property = properties.Item(name);

            Assert.NotNull(property);
            Assert.Equal(name, property.Name);
            Assert.Equal(value, property.Value);
        }
예제 #3
0
 public TargetFrameworkInfo(string targetFrameworkMoniker, IVsReferenceItems frameworkReferences, IVsReferenceItems packageDownloads, IVsReferenceItems projectReferences, IVsReferenceItems packageReferences, IVsProjectProperties properties)
 {
     TargetFrameworkMoniker = targetFrameworkMoniker;
     FrameworkReferences    = frameworkReferences;
     PackageDownloads       = packageDownloads;
     ProjectReferences      = projectReferences;
     PackageReferences      = packageReferences;
     Properties             = properties;
 }
예제 #4
0
        internal static NuGetFramework GetTargetFramework(IVsProjectProperties properties, string projectFullPath)
        {
            var targetFrameworkMoniker   = GetPropertyValueOrNull(properties, ProjectBuildProperties.TargetFrameworkMoniker);
            var targetPlatformMoniker    = GetPropertyValueOrNull(properties, ProjectBuildProperties.TargetPlatformIdentifier);
            var targetPlatformMinVersion = GetPropertyValueOrNull(properties, ProjectBuildProperties.TargetPlatformMinVersion);

            return(MSBuildProjectFrameworkUtility.GetProjectFramework(
                       projectFullPath,
                       targetFrameworkMoniker,
                       targetPlatformMoniker,
                       targetPlatformMinVersion));
        }
예제 #5
0
        public TargetFrameworkInfo(string targetFrameworkMoniker, IVsReferenceItems projectReferences, IVsReferenceItems packageReferences, IVsProjectProperties properties)
        {
            Requires.NotNullOrEmpty(targetFrameworkMoniker, nameof(targetFrameworkMoniker));
            Requires.NotNull(projectReferences, nameof(projectReferences));
            Requires.NotNull(packageReferences, nameof(packageReferences));
            Requires.NotNull(properties, nameof(properties));

            TargetFrameworkMoniker = targetFrameworkMoniker;
            ProjectReferences      = projectReferences;
            PackageReferences      = packageReferences;
            Properties             = properties;
        }
예제 #6
0
        private static string GetPropertyValueOrNull(
            IVsProjectProperties properties, string propertyName)
        {
            try
            {
                return(MSBuildStringUtility.TrimAndGetNullForEmpty(properties?.Item(propertyName)?.Value));
            }
            catch (ArgumentException)
            {
            }
            catch (KeyNotFoundException)
            {
            }

            return(null);
        }