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