AssemblyInfoHelper 5.3.1
dotnet add package AssemblyInfoHelper --version 5.3.1
NuGet\Install-Package AssemblyInfoHelper -Version 5.3.1
<PackageReference Include="AssemblyInfoHelper" Version="5.3.1" />
paket add AssemblyInfoHelper --version 5.3.1
#r "nuget: AssemblyInfoHelper, 5.3.1"
// Install AssemblyInfoHelper as a Cake Addin #addin nuget:?package=AssemblyInfoHelper&version=5.3.1 // Install AssemblyInfoHelper as a Cake Tool #tool nuget:?package=AssemblyInfoHelper&version=5.3.1
AssemblyInfoHelper
Purpose
The AssemblyInfoHelper gets and displays the assembly attributes of the assembly that calls this functions. This contains the following informations:
- AssemblyTitle
- AssemblyDescription
- AssemblyCompany
- AssemblyProduct
- AssemblyCopyright
- AssemblyTrademark
- AssemblyVersion
- AssemblyFileVersion (this attribute is only show if it differs from the AssemblyVersion)
- AssemblyInformationalVersion
- AssemblyCreationTime
The readme is get from the README.md file in the path given when creating the WindowAssemblyInfo or the application startup path.
The changelog is get from the CHANGELOG.md file in the path given when creating the WindowAssemblyInfo or the application startup path.
GitHub releases are taken from repository at the url given by the GitHubRepo
attribute (see usage below).
The AssemblyInfoHelper.Demo is used to test the AssemblyInfoHelper.
Installation
Include the latest release from nuget.org in your project.
You can also use the Package Manager console with: PM> Install-Package AssemblyInfoHelper
Usage
To show all releases from GitHub add the GitHubRepo
attribute to the AssemblyInfo.cs file:
[assembly: AssemblyInfoHelper.GitHub.GitHubRepo("https://github.com/M1S2/AssemblyInfoHelper")]
The simplest way to show the WindowAssemblyInfo is to add a AppInfoButton
control to the application. Everything is done inside this control.
xmlns:assemblyInfoHelper="clr-namespace:AssemblyInfoHelper;assembly=AssemblyInfoHelper"
...
<assemblyInfoHelper:AppInfoButton EnableNewVersionNotification="True"/>
Or you can open the info window with:
AssemblyInfoHelper.WindowAssemblyInfo window = new AssemblyInfoHelper.WindowAssemblyInfo();
window.ShowDialog();
Add assembly attributes
New style projects
Add the following properties to a .csproj file to include assembly attributes:
<PropertyGroup>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<Title>TitleText</Title>
<Description>DescriptionText</Description>
<Company>CompanyText</Company>
<Product>ProductText</Product>
<Copyright>Copyright © 2022</Copyright>
</PropertyGroup>
Old style projects
Add the following lines to the AssemblyInfo.cs file to include assembly attributes:
[assembly: AssemblyTitle("TitleText")]
[assembly: AssemblyDescription("DescriptionText")]
[assembly: AssemblyCompany("CompanyText")]
[assembly: AssemblyProduct("ProductText")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("TrademarkText")]
Update Feature
You can see and download all releases available on GitHub on the GitHub releases tab. To Upgrade/Repair/Downgrade click on the button beside the corresponding release. The release is downloaded from GitHub and installed automatically depending if an installer or binaries are available.
The release binaries must be added to a GitHub release as asset. The following naming conventions are used to detect, what type of asset it is:
For binaries:
- %ProjectName%_Binaries.zip
- %ProjectName%.zip
- %ProjectName%_v1.0.0.zip
- bin.zip
For installer:
- %ProjectName%_Installer.zip
- Installer.zip
- Setup.zip
- Setup.exe
Persistent files during update
If files should be preserved during the update process, the UpdatePersistentFiles
attribute can be added to the AssemblyInfo.cs
file:
[assembly: AssemblyInfoHelper.GitHub.UpdatePersistentFiles("Filename.txt")]
Adapt the "Filename.txt" to the file you want to keep. The filename is relative to the executing assembly. E.g. if you want to keep a database file named "Database.db" that is located beside the executable "DemoApp.exe", use "Database.db" with the UpdatePersistentFiles
attribute.
If multiple files should be kept, add one UpdatePersistentFiles
attribute for each file. Files in subfolders can also be persisted.
[assembly: AssemblyInfoHelper.GitHub.UpdatePersistentFiles("Filename1.txt")]
[assembly: AssemblyInfoHelper.GitHub.UpdatePersistentFiles("Folder\\Filename2.txt")]
It is also possible to persist all files matching a specific pattern. This can be used to persist e.g. all database files with the ".db" extension (see the following example). Use * as wildcard as placeholder.
[assembly: AssemblyInfoHelper.GitHub.UpdatePersistentFiles("*.db")]
If the file doesn't exist, it is simply not persisted and no warning or error is shown.
Temporary folder used by the update feature
The %AppData%\Local%ProjectName% folder is used to temporary save the downloaded release. Also the files that should be persisted are saved here. Afer the update was finished, the folder content is deleted. Only the Updater.exe remains because it can't delete itself.
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. net6.0-windows7.0 is compatible. 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 | netcoreapp3.1 is compatible. |
.NET Framework | net452 is compatible. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 was computed. net481 was computed. |
-
.NETCoreApp 3.1
- MahApps.Metro (>= 2.0.1)
- MahApps.Metro.IconPacks.Material (>= 4.11.0)
- MahApps.Metro.IconPacks.Octicons (>= 4.11.0)
- Markdig (>= 0.30.4)
- MdXaml (>= 1.16.1)
- MdXaml.Html (>= 1.16.1)
- MdXaml.Plugins (>= 1.16.1)
- MdXaml.Svg (>= 1.16.1)
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Windows.Compatibility (>= 6.0.6)
- Octokit (>= 0.40.0)
- Semver (>= 2.2.0)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Data.DataSetExtensions (>= 4.5.0)
-
.NETFramework 4.5.2
- MahApps.Metro (>= 2.0.1)
- MahApps.Metro.IconPacks.Material (>= 4.11.0)
- MahApps.Metro.IconPacks.Octicons (>= 4.11.0)
- Markdig (>= 0.30.4)
- MdXaml (>= 1.16.1)
- MdXaml.Html (>= 1.16.1)
- MdXaml.Plugins (>= 1.16.1)
- MdXaml.Svg (>= 1.16.1)
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Windows.Compatibility (>= 6.0.6)
- Octokit (>= 0.40.0)
- Semver (>= 2.2.0)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Data.DataSetExtensions (>= 4.5.0)
-
.NETFramework 4.7.2
- MahApps.Metro (>= 2.0.1)
- MahApps.Metro.IconPacks.Material (>= 4.11.0)
- MahApps.Metro.IconPacks.Octicons (>= 4.11.0)
- Markdig (>= 0.30.4)
- MdXaml (>= 1.16.1)
- MdXaml.Html (>= 1.16.1)
- MdXaml.Plugins (>= 1.16.1)
- MdXaml.Svg (>= 1.16.1)
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Windows.Compatibility (>= 6.0.6)
- Octokit (>= 0.40.0)
- Semver (>= 2.2.0)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Data.DataSetExtensions (>= 4.5.0)
-
net6.0-windows7.0
- MahApps.Metro (>= 2.0.1)
- MahApps.Metro.IconPacks.Material (>= 4.11.0)
- MahApps.Metro.IconPacks.Octicons (>= 4.11.0)
- Markdig (>= 0.30.4)
- MdXaml (>= 1.16.1)
- MdXaml.Html (>= 1.16.1)
- MdXaml.Plugins (>= 1.16.1)
- MdXaml.Svg (>= 1.16.1)
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Windows.Compatibility (>= 6.0.6)
- Octokit (>= 0.40.0)
- Semver (>= 2.2.0)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Data.DataSetExtensions (>= 4.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
5.3.1 | 602 | 6/14/2023 |
5.3.0 | 504 | 5/17/2023 |
5.2.2 | 722 | 11/11/2022 |
5.2.1 | 898 | 9/18/2022 |
5.2.0 | 854 | 7/29/2022 |
5.1.0 | 858 | 7/4/2022 |
5.0.1 | 865 | 6/24/2022 |
5.0.0 | 869 | 6/21/2022 |
4.3.1 | 952 | 6/19/2020 |
4.3.0 | 898 | 5/4/2020 |
4.2.1 | 960 | 12/13/2019 |
4.2.0 | 940 | 11/5/2019 |
4.1.1 | 958 | 8/27/2019 |
4.1.0 | 924 | 8/22/2019 |
4.0.0 | 914 | 8/12/2019 |
3.0.0 | 935 | 8/12/2019 |
2.0.0 | 929 | 8/12/2019 |
1.0.0 | 911 | 8/12/2019 |
Use this release with Metro styled WPF apps (using MahApps.Metro). It is suitable for .NET 6.0 apps.