Esatto.Win32.Registry.AdmxExporter
3.0.20
dotnet add package Esatto.Win32.Registry.AdmxExporter --version 3.0.20
NuGet\Install-Package Esatto.Win32.Registry.AdmxExporter -Version 3.0.20
<PackageReference Include="Esatto.Win32.Registry.AdmxExporter" Version="3.0.20" />
paket add Esatto.Win32.Registry.AdmxExporter --version 3.0.20
#r "nuget: Esatto.Win32.Registry.AdmxExporter, 3.0.20"
// Install Esatto.Win32.Registry.AdmxExporter as a Cake Addin #addin nuget:?package=Esatto.Win32.Registry.AdmxExporter&version=3.0.20 // Install Esatto.Win32.Registry.AdmxExporter as a Cake Tool #tool nuget:?package=Esatto.Win32.Registry.AdmxExporter&version=3.0.20
ADMX Export for Esatto.Win32.Registry wrapper classes
Wrapper classes using Esatto.Win32.Registry
can be exported to an ADMX file by adding a reference to
Esatto.Win32.Registry.AdmxExporter
.
<ItemGroup>
<PackageReference Include="Esatto.Win32.Registry" Version="3.0.5" />
<PackageReference Include="Esatto.Win32.Registry.AdmxExporter" Version="3.0.5" />
</ItemGroup>
The ADMX file will be generated in the build output directory
under PolicyDefinitions
and can be loaded into Active Directory
by adding them to the group policy central store,
or by uploading them to Intune or another MDM. For testing, add them to C:\Windows\PolicyDefinitions
on your local machine
and use gpedit.msc
.
Example appearance in Group Policy Management Center (GPMC):
Customizing the ADMX file
- The category ("In Touch Technologies > Example Product > Desktop Client" in the example) will default to the registry path, but can be overridden with
[Category("")]
. [DisplayName("")]
will set the name of the setting.[Description("")]
will set the help text for the setting.[ChildSettingOf(""]
will cause a setting to be added to the "Options" pane of another setting (presentation
in the ADMX schema).[RegistrySettingsMetadata(string)]
can be used to export a non-public type, a type with a parameterized constructor, or a type which does not directly inherit fromRegistrySettings
.[RegistrySettingMetadata(string, RegistryValueKind, DefaultValue = string)]
can be used for computed and non-trivial properties / values.
Example:
public sealed class DesktopClientSettings : RegistrySettings
{
public DesktopClientSettings()
: base(@"In Touch Technologies\Esatto\Example App")
{
}
public static DesktopClientSettings Instance { get; } = new();
[DisplayName("Home URL")]
[Description("Initial URL to be used for login. Typically set to the IdP login page for the RP")]
public string HomeUrl
{
get => GetString(nameof(HomeUrl), null);
set => SetString(nameof(HomeUrl), value);
}
[DisplayName("Block Close")]
[Description("If set, the user cannot use the \"X\" or Alt-F4 to close the window. You can still close the window by clicking the application icon (Alt+Space) and selecting Quit. Attempts to close the application will minimize the application instead.")]
public bool BlockClose
{
get => GetBool(nameof(BlockClose), true);
set => SetBool(nameof(BlockClose), value);
}
[DisplayName("Block Close When Minimized")]
[Description("If Block Close is not set, this setting has no effect. When block close is set, the user can close the application by right clicking the taskbar and selecting \"Close\". When this option is set, attempts to close via the taskbar are ignored.")]
[ChildSettingOf(nameof(BlockClose))]
public bool BlockCloseWhenMinimized
{
get => GetBool(nameof(BlockClose), false);
set => SetBool(nameof(BlockClose), value);
}
[DisplayName("CCP Window Width")]
[Description("Width of web browser for CCP state")]
public int CcpWidth
{
get => GetInt(nameof(CcpWidth), 400);
set => SetInt(nameof(CcpWidth), value);
}
[DisplayName("CCP Window Height")]
[Description("Height of web browser for CCP state")]
public int CcpHeight
{
get => GetInt(nameof(CcpHeight), 600);
set => SetInt(nameof(CcpHeight), value);
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.