diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000..77bb574b --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,36 @@ + + + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pipelines/azure-pipelines.release.yml b/pipelines/azure-pipelines.release.yml index 12075380..e3d5012c 100644 --- a/pipelines/azure-pipelines.release.yml +++ b/pipelines/azure-pipelines.release.yml @@ -152,6 +152,14 @@ extends: displayName: Configure internal feed workingDirectory: $(Build.SourcesDirectory) + - task: UseDotNet@2 + displayName: Use .NET SDK from global.json + inputs: + packageType: sdk + useGlobalJson: true + workingDirectory: $(Build.SourcesDirectory) + performMultiLevelLookup: true + - task: DotNetCoreCLI@2 displayName: Restore inputs: diff --git a/pipelines/azure-pipelines.yml b/pipelines/azure-pipelines.yml index bb6bd1f6..2109e532 100644 --- a/pipelines/azure-pipelines.yml +++ b/pipelines/azure-pipelines.yml @@ -34,7 +34,7 @@ variables: buildPlatform: "x64" # Target framework - targetFramework: "net8.0-windows10.0.26100.0" + targetFramework: "net9.0-windows10.0.26100.0" resources: repositories: @@ -109,6 +109,14 @@ extends: $manifest.Package.Identity.Version = "$(version)" $manifest.save("$(workingDirectory)/WingetCreatePackage/Package.appxmanifest") + - task: UseDotNet@2 + displayName: Use .NET SDK from global.json + inputs: + packageType: sdk + useGlobalJson: true + workingDirectory: $(Build.SourcesDirectory) + performMultiLevelLookup: true + - task: DotNetCoreCLI@2 displayName: Restore inputs: diff --git a/src/WingetCreateCLI.sln b/src/WingetCreateCLI.sln index e7a47962..dceca8b4 100644 --- a/src/WingetCreateCLI.sln +++ b/src/WingetCreateCLI.sln @@ -20,6 +20,7 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A1727DC5-E7A5-4899-BF53-EAF658055D61}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig + ..\Directory.Packages.props = ..\Directory.Packages.props EndProjectSection EndProject Global diff --git a/src/WingetCreateCLI/Commands/UpdateCommand.cs b/src/WingetCreateCLI/Commands/UpdateCommand.cs index b53fcfdc..bb208ec3 100644 --- a/src/WingetCreateCLI/Commands/UpdateCommand.cs +++ b/src/WingetCreateCLI/Commands/UpdateCommand.cs @@ -12,6 +12,7 @@ namespace Microsoft.WingetCreateCLI.Commands using AutoMapper; using CommandLine; using CommandLine.Text; + using Microsoft.Extensions.Logging.Abstractions; using Microsoft.WingetCreateCLI.Logging; using Microsoft.WingetCreateCLI.Models.Settings; using Microsoft.WingetCreateCLI.Properties; @@ -614,31 +615,33 @@ private static string ExtractArchiveAndRetrieveDirectoryPath(string packageFileP private static Manifests ConvertSingletonToMultifileManifest(WingetCreateCore.Models.Singleton.SingletonManifest singletonManifest) { // Create automapping configuration - var config = new MapperConfiguration(cfg => - { - cfg.AllowNullCollections = true; - cfg.CreateMap() - .ForMember(dest => dest.DefaultLocale, opt => opt.MapFrom(src => src.PackageLocale)) - .ForMember(dest => dest.ManifestVersion, opt => opt.Ignore()); - cfg.CreateMap().ForMember(dest => dest.ManifestVersion, opt => opt.Ignore()); - cfg.CreateMap() - .ForMember(dest => dest.ManifestVersion, opt => opt.Ignore()); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); // Markets2 is not used, but is required to satisfy mapping configuration. - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - }); + var config = new MapperConfiguration( + cfg => + { + cfg.AllowNullCollections = true; + cfg.CreateMap() + .ForMember(dest => dest.DefaultLocale, opt => opt.MapFrom(src => src.PackageLocale)) + .ForMember(dest => dest.ManifestVersion, opt => opt.Ignore()); + cfg.CreateMap().ForMember(dest => dest.ManifestVersion, opt => opt.Ignore()); + cfg.CreateMap() + .ForMember(dest => dest.ManifestVersion, opt => opt.Ignore()); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); // Markets2 is not used, but is required to satisfy mapping configuration. + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + }, + NullLoggerFactory.Instance); var mapper = config.CreateMapper(); Manifests manifests = new Manifests(); diff --git a/src/WingetCreateCLI/Properties/PublishProfiles/x64ReleasePublishProfile.pubxml b/src/WingetCreateCLI/Properties/PublishProfiles/x64ReleasePublishProfile.pubxml index 7d34937b..d8a147d7 100644 --- a/src/WingetCreateCLI/Properties/PublishProfiles/x64ReleasePublishProfile.pubxml +++ b/src/WingetCreateCLI/Properties/PublishProfiles/x64ReleasePublishProfile.pubxml @@ -6,13 +6,13 @@ https://go.microsoft.com/fwlink/?LinkID=208121. Release x64 - bin\x64\Release\net8.0-windows10.0.26100.0\win-x64\publish\ + bin\x64\Release\net9.0-windows10.0.26100.0\win-x64\publish\ FileSystem - net8.0-windows10.0.26100.0 + net9.0-windows10.0.26100.0 win-x64 true False False False - \ No newline at end of file + diff --git a/src/WingetCreateCLI/Properties/PublishProfiles/x86ReleasePublishProfile.pubxml b/src/WingetCreateCLI/Properties/PublishProfiles/x86ReleasePublishProfile.pubxml index aa368948..b3d2656b 100644 --- a/src/WingetCreateCLI/Properties/PublishProfiles/x86ReleasePublishProfile.pubxml +++ b/src/WingetCreateCLI/Properties/PublishProfiles/x86ReleasePublishProfile.pubxml @@ -6,13 +6,13 @@ https://go.microsoft.com/fwlink/?LinkID=208121. Release x86 - bin\x86\Release\net8.0-windows10.0.26100.0\win-x86\publish\ + bin\x86\Release\net9.0-windows10.0.26100.0\win-x86\publish\ FileSystem - net8.0-windows10.0.26100.0 + net9.0-windows10.0.26100.0 win-x86 true False False False - \ No newline at end of file + diff --git a/src/WingetCreateCLI/WingetCreateCLI.csproj b/src/WingetCreateCLI/WingetCreateCLI.csproj index d1cf3959..93cd08f6 100644 --- a/src/WingetCreateCLI/WingetCreateCLI.csproj +++ b/src/WingetCreateCLI/WingetCreateCLI.csproj @@ -2,7 +2,7 @@ Exe - net8.0-windows10.0.26100.0 + net9.0-windows10.0.26100.0 WingetCreateCLI Microsoft.WingetCreateCLI 1.12 @@ -18,23 +18,23 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + @@ -117,4 +117,4 @@ $(TargetFrameworkSDKToolsDirectory)$(PlatformTarget)\ - \ No newline at end of file + diff --git a/src/WingetCreateCore/Serializers/YamlSerializer.cs b/src/WingetCreateCore/Serializers/YamlSerializer.cs index c78e7278..0919c30c 100644 --- a/src/WingetCreateCore/Serializers/YamlSerializer.cs +++ b/src/WingetCreateCore/Serializers/YamlSerializer.cs @@ -136,6 +136,16 @@ public AliasTypeInspector(ITypeInspector innerTypeDescriptor) this.innerTypeDescriptor = innerTypeDescriptor; } + public override string GetEnumName(Type enumType, string value) + { + return this.innerTypeDescriptor.GetEnumName(enumType, value); + } + + public override string GetEnumValue(object enumValue) + { + return this.innerTypeDescriptor.GetEnumValue(enumValue); + } + /// /// Because certain properties were generated incorrectly, we needed to create custom fields for those properties. /// Therefore to resolve naming conflicts during deserialization, we prioritize fields that have the YamlMemberAttribute defined @@ -182,7 +192,7 @@ public bool Accepts(Type type) return type.IsEnum || ((u != null) && u.IsEnum); } - public object ReadYaml(IParser parser, Type type) + public object ReadYaml(IParser parser, Type type, ObjectDeserializer rootDeserializer) { Type u = Nullable.GetUnderlyingType(type); if (u != null) @@ -202,7 +212,7 @@ public object ReadYaml(IParser parser, Type type) return Enum.Parse(type, serializableValues[parsedEnum.Value].Name); } - public void WriteYaml(IEmitter emitter, object value, Type type) + public void WriteYaml(IEmitter emitter, object value, Type type, ObjectSerializer serializer) { var enumMember = type.GetMember(value.ToString()).FirstOrDefault(); var yamlValue = enumMember?.GetCustomAttributes(true).Select(ema => ema.Value).FirstOrDefault() ?? value.ToString(); @@ -217,14 +227,14 @@ public YamlSkipPropertyVisitor(IObjectGraphVisitor nextVisitor) { } - public override bool EnterMapping(IPropertyDescriptor key, IObjectDescriptor value, IEmitter context) + public override bool EnterMapping(IPropertyDescriptor key, IObjectDescriptor value, IEmitter context, ObjectSerializer serializer) { if (key.Name == "AdditionalProperties") { return false; } - return base.EnterMapping(key, value, context); + return base.EnterMapping(key, value, context, serializer); } } diff --git a/src/WingetCreateCore/WingetCreateCore.csproj b/src/WingetCreateCore/WingetCreateCore.csproj index e2a3d99e..8687e17e 100644 --- a/src/WingetCreateCore/WingetCreateCore.csproj +++ b/src/WingetCreateCore/WingetCreateCore.csproj @@ -4,7 +4,7 @@ true true Microsoft.WingetCreateCore - net8.0-windows10.0.26100.0 + net9.0-windows10.0.26100.0 x86;x64 win-x86;win-x64 true @@ -15,27 +15,27 @@ - - - + + + - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + diff --git a/src/WingetCreatePackage/WingetCreatePackage.wapproj b/src/WingetCreatePackage/WingetCreatePackage.wapproj index cacbd589..e30174cb 100644 --- a/src/WingetCreatePackage/WingetCreatePackage.wapproj +++ b/src/WingetCreatePackage/WingetCreatePackage.wapproj @@ -67,5 +67,11 @@ + + + + + + \ No newline at end of file diff --git a/src/WingetCreateTests/WingetCreateTests/UnitTests/PackageParserTests.cs b/src/WingetCreateTests/WingetCreateTests/UnitTests/PackageParserTests.cs index 798dd00f..cc8575b1 100644 --- a/src/WingetCreateTests/WingetCreateTests/UnitTests/PackageParserTests.cs +++ b/src/WingetCreateTests/WingetCreateTests/UnitTests/PackageParserTests.cs @@ -9,6 +9,7 @@ namespace Microsoft.WingetCreateUnitTests using System.IO.Compression; using System.Linq; using AutoMapper; + using Microsoft.Extensions.Logging.Abstractions; using Microsoft.WingetCreateCore; using Microsoft.WingetCreateCore.Common; using Microsoft.WingetCreateCore.Models; @@ -207,14 +208,16 @@ public void ParseAndUpdateZipInstaller() /// Installer Manifest Installer object model. private static Installer ConvertSingletonInstaller(WingetCreateCore.Models.Singleton.Installer installer) { - var config = new MapperConfiguration(cfg => - { - cfg.AllowNullCollections = true; - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - }); + var config = new MapperConfiguration( + cfg => + { + cfg.AllowNullCollections = true; + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + }, + NullLoggerFactory.Instance); var mapper = config.CreateMapper(); return mapper.Map(installer); diff --git a/src/WingetCreateTests/WingetCreateTests/WingetCreateTests.csproj b/src/WingetCreateTests/WingetCreateTests/WingetCreateTests.csproj index 30a7fef6..8b49b3f3 100644 --- a/src/WingetCreateTests/WingetCreateTests/WingetCreateTests.csproj +++ b/src/WingetCreateTests/WingetCreateTests/WingetCreateTests.csproj @@ -1,7 +1,7 @@  - net8.0-windows10.0.26100.0 + net9.0-windows10.0.26100.0 false true x64;x86 @@ -12,11 +12,12 @@ - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive