Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
Comment thread
AmelBawa-msft marked this conversation as resolved.
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AutoMapper" Version="15.1.3" />
<PackageVersion Include="CommandLineParser" Version="2.9.1" />
<PackageVersion Include="DesktopBridge.Helpers" Version="1.2.2" />
<PackageVersion Include="jose-jwt" Version="4.1.0" />
<PackageVersion Include="Microsoft.CorrelationVector" Version="1.0.42" />
<PackageVersion Include="Microsoft.Msix.Utils" Version="2.1.1" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.3.213" />
<PackageVersion Include="Microsoft.WindowsPackageManager.Utils" Version="1.12.350" />
<PackageVersion Include="Moq" Version="4.20.70" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="Newtonsoft.Json.Schema" Version="3.0.15" />
<PackageVersion Include="NLog" Version="5.2.8" />
<PackageVersion Include="NSwag.MSBuild" Version="14.0.3" />
<PackageVersion Include="NUnit" Version="4.0.1" />
<PackageVersion Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageVersion Include="Octokit" Version="9.1.2" />
<PackageVersion Include="Polly" Version="8.3.0" />
<PackageVersion Include="RestSharp" Version="112.0.0" />
<PackageVersion Include="Sharprompt" Version="2.4.5" />
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
<PackageVersion Include="System.Private.Uri" Version="4.3.2" />
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="8.0.0" />
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageVersion Include="Vestris.ResourceLib" Version="2.2.0" />
<PackageVersion Include="WiX" Version="3.14.1" />
<PackageVersion Include="YamlDotNet" Version="16.3.0" />
</ItemGroup>
</Project>
8 changes: 8 additions & 0 deletions pipelines/azure-pipelines.release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
10 changes: 9 additions & 1 deletion pipelines/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down
1 change: 1 addition & 0 deletions src/WingetCreateCLI.sln
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
53 changes: 28 additions & 25 deletions src/WingetCreateCLI/Commands/UpdateCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<WingetCreateCore.Models.Singleton.SingletonManifest, VersionManifest>()
.ForMember(dest => dest.DefaultLocale, opt => opt.MapFrom(src => src.PackageLocale))
.ForMember(dest => dest.ManifestVersion, opt => opt.Ignore());
cfg.CreateMap<WingetCreateCore.Models.Singleton.SingletonManifest, DefaultLocaleManifest>().ForMember(dest => dest.ManifestVersion, opt => opt.Ignore());
cfg.CreateMap<WingetCreateCore.Models.Singleton.SingletonManifest, InstallerManifest>()
.ForMember(dest => dest.ManifestVersion, opt => opt.Ignore());
cfg.CreateMap<WingetCreateCore.Models.Singleton.Dependencies, WingetCreateCore.Models.Installer.Dependencies>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Installer, WingetCreateCore.Models.Installer.Installer>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.InstallerSwitches, WingetCreateCore.Models.Installer.InstallerSwitches>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.AppsAndFeaturesEntry, WingetCreateCore.Models.Installer.AppsAndFeaturesEntry>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.ExpectedReturnCode, WingetCreateCore.Models.Installer.ExpectedReturnCode>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.PackageDependencies, WingetCreateCore.Models.Installer.PackageDependencies>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Markets, WingetCreateCore.Models.Installer.Markets>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Markets2, WingetCreateCore.Models.Installer.Markets2>(); // Markets2 is not used, but is required to satisfy mapping configuration.
cfg.CreateMap<WingetCreateCore.Models.Singleton.Agreement, WingetCreateCore.Models.DefaultLocale.Agreement>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Documentation, WingetCreateCore.Models.DefaultLocale.Documentation>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.NestedInstallerFile, WingetCreateCore.Models.Installer.NestedInstallerFile>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Files, WingetCreateCore.Models.Installer.Files>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.InstallationMetadata, WingetCreateCore.Models.Installer.InstallationMetadata>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Icon, WingetCreateCore.Models.DefaultLocale.Icon>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Authentication, WingetCreateCore.Models.Installer.Authentication>();
});
var config = new MapperConfiguration(
cfg =>
{
cfg.AllowNullCollections = true;
cfg.CreateMap<WingetCreateCore.Models.Singleton.SingletonManifest, VersionManifest>()
.ForMember(dest => dest.DefaultLocale, opt => opt.MapFrom(src => src.PackageLocale))
.ForMember(dest => dest.ManifestVersion, opt => opt.Ignore());
cfg.CreateMap<WingetCreateCore.Models.Singleton.SingletonManifest, DefaultLocaleManifest>().ForMember(dest => dest.ManifestVersion, opt => opt.Ignore());
cfg.CreateMap<WingetCreateCore.Models.Singleton.SingletonManifest, InstallerManifest>()
.ForMember(dest => dest.ManifestVersion, opt => opt.Ignore());
cfg.CreateMap<WingetCreateCore.Models.Singleton.Dependencies, WingetCreateCore.Models.Installer.Dependencies>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Installer, WingetCreateCore.Models.Installer.Installer>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.InstallerSwitches, WingetCreateCore.Models.Installer.InstallerSwitches>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.AppsAndFeaturesEntry, WingetCreateCore.Models.Installer.AppsAndFeaturesEntry>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.ExpectedReturnCode, WingetCreateCore.Models.Installer.ExpectedReturnCode>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.PackageDependencies, WingetCreateCore.Models.Installer.PackageDependencies>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Markets, WingetCreateCore.Models.Installer.Markets>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Markets2, WingetCreateCore.Models.Installer.Markets2>(); // Markets2 is not used, but is required to satisfy mapping configuration.
cfg.CreateMap<WingetCreateCore.Models.Singleton.Agreement, WingetCreateCore.Models.DefaultLocale.Agreement>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Documentation, WingetCreateCore.Models.DefaultLocale.Documentation>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.NestedInstallerFile, WingetCreateCore.Models.Installer.NestedInstallerFile>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Files, WingetCreateCore.Models.Installer.Files>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.InstallationMetadata, WingetCreateCore.Models.Installer.InstallationMetadata>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Icon, WingetCreateCore.Models.DefaultLocale.Icon>();
cfg.CreateMap<WingetCreateCore.Models.Singleton.Authentication, WingetCreateCore.Models.Installer.Authentication>();
},
NullLoggerFactory.Instance);
var mapper = config.CreateMapper();

Manifests manifests = new Manifests();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>x64</Platform>
<PublishDir>bin\x64\Release\net8.0-windows10.0.26100.0\win-x64\publish\</PublishDir>
<PublishDir>bin\x64\Release\net9.0-windows10.0.26100.0\win-x64\publish\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<TargetFramework>net8.0-windows10.0.26100.0</TargetFramework>
<TargetFramework>net9.0-windows10.0.26100.0</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<SelfContained>true</SelfContained>
<PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun>False</PublishReadyToRun>
<PublishTrimmed>False</PublishTrimmed>
</PropertyGroup>
</Project>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>x86</Platform>
<PublishDir>bin\x86\Release\net8.0-windows10.0.26100.0\win-x86\publish\</PublishDir>
<PublishDir>bin\x86\Release\net9.0-windows10.0.26100.0\win-x86\publish\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<TargetFramework>net8.0-windows10.0.26100.0</TargetFramework>
<TargetFramework>net9.0-windows10.0.26100.0</TargetFramework>
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
<SelfContained>true</SelfContained>
<PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun>False</PublishReadyToRun>
<PublishTrimmed>False</PublishTrimmed>
</PropertyGroup>
</Project>
</Project>
20 changes: 10 additions & 10 deletions src/WingetCreateCLI/WingetCreateCLI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0-windows10.0.26100.0</TargetFramework>
<TargetFramework>net9.0-windows10.0.26100.0</TargetFramework>
<AssemblyName>WingetCreateCLI</AssemblyName>
<RootNamespace>Microsoft.WingetCreateCLI</RootNamespace>
<Version>1.12</Version>
Expand All @@ -18,23 +18,23 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="AutoMapper" Version="13.0.1" />
<PackageReference Include="CommandLineParser" Version="2.9.1" />
<PackageReference Include="DesktopBridge.Helpers" Version="1.2.2" />
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.183">
<PackageReference Include="AutoMapper" />
<PackageReference Include="CommandLineParser" />
<PackageReference Include="DesktopBridge.Helpers" />
<PackageReference Include="Microsoft.Windows.CsWin32">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NSwag.MSBuild" Version="14.0.3">
<PackageReference Include="NSwag.MSBuild">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Sharprompt" Version="2.4.5" />
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556">
<PackageReference Include="Sharprompt" />
<PackageReference Include="StyleCop.Analyzers">
Comment thread
AmelBawa-msft marked this conversation as resolved.
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="System.Security.Cryptography.ProtectedData" Version="8.0.0" />
<PackageReference Include="System.Security.Cryptography.ProtectedData" />
</ItemGroup>

<ItemGroup>
Expand Down Expand Up @@ -117,4 +117,4 @@
<SdkToolsPathMaybeWithx64Architecture>$(TargetFrameworkSDKToolsDirectory)$(PlatformTarget)\</SdkToolsPathMaybeWithx64Architecture>
</PropertyGroup>
</Target>
</Project>
</Project>
18 changes: 14 additions & 4 deletions src/WingetCreateCore/Serializers/YamlSerializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

/// <summary>
/// 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
Expand Down Expand Up @@ -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)
Expand All @@ -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<EnumMemberAttribute>(true).Select(ema => ema.Value).FirstOrDefault() ?? value.ToString();
Expand All @@ -217,14 +227,14 @@ public YamlSkipPropertyVisitor(IObjectGraphVisitor<IEmitter> 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);
}
}

Expand Down
30 changes: 15 additions & 15 deletions src/WingetCreateCore/WingetCreateCore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
<RootNamespace>Microsoft.WingetCreateCore</RootNamespace>
<TargetFramework>net8.0-windows10.0.26100.0</TargetFramework>
<TargetFramework>net9.0-windows10.0.26100.0</TargetFramework>
<Platforms>x86;x64</Platforms>
<RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
Expand All @@ -15,27 +15,27 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="jose-jwt" Version="4.1.0" />
<PackageReference Include="Microsoft.CorrelationVector" Version="1.0.42" />
<PackageReference Include="Microsoft.Msix.Utils" Version="2.1.1" />
<PackageReference Include="jose-jwt" />
<PackageReference Include="Microsoft.CorrelationVector" />
<PackageReference Include="Microsoft.Msix.Utils" />
<!--https://docs.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files#generatepathproperty-->
<PackageReference Include="Microsoft.WindowsPackageManager.Utils" Version="1.12.350" GeneratePathProperty="true" />
<PackageReference Include="Newtonsoft.Json.Schema" Version="3.0.15" />
<PackageReference Include="NLog" Version="5.2.8" />
<PackageReference Include="NSwag.MSBuild" Version="14.0.3">
<PackageReference Include="Microsoft.WindowsPackageManager.Utils" GeneratePathProperty="true" />
<PackageReference Include="Newtonsoft.Json.Schema" />
<PackageReference Include="NLog" />
<PackageReference Include="NSwag.MSBuild">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Polly" Version="8.3.0" />
<PackageReference Include="RestSharp" Version="112.0.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556">
<PackageReference Include="Polly" />
<PackageReference Include="RestSharp" />
<PackageReference Include="StyleCop.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Octokit" Version="9.1.2" />
<PackageReference Include="Vestris.ResourceLib" Version="2.2.0" />
<PackageReference Include="WiX" Version="3.14.1" />
<PackageReference Include="YamlDotNet" Version="15.1.1" />
<PackageReference Include="Octokit" />
<PackageReference Include="Vestris.ResourceLib" />
<PackageReference Include="WiX" />
<PackageReference Include="YamlDotNet" />
</ItemGroup>

<ItemGroup>
Expand Down
6 changes: 6 additions & 0 deletions src/WingetCreatePackage/WingetCreatePackage.wapproj
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,11 @@
<Content Include="Images\StoreLogo.scale-400.png" />
<Content Include="Images\Wide310x150Logo.scale-200.png" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" />
<PackageReference Include="System.Net.Http" />
<PackageReference Include="System.Private.Uri" />
<PackageReference Include="System.Text.RegularExpressions" />
</ItemGroup>
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.targets" />
</Project>
Loading
Loading