https://github.com/m1s2/assemblyinfohelper
Display informations gathered from the assembly attributes
https://github.com/m1s2/assemblyinfohelper
assembly assembly-info
Last synced: 2 months ago
JSON representation
Display informations gathered from the assembly attributes
- Host: GitHub
- URL: https://github.com/m1s2/assemblyinfohelper
- Owner: M1S2
- License: mit
- Created: 2019-08-09T21:39:20.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-06-14T17:51:35.000Z (about 3 years ago)
- Last Synced: 2025-02-11T20:50:31.076Z (over 1 year ago)
- Topics: assembly, assembly-info
- Language: C#
- Homepage:
- Size: 26.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# AssemblyInfoHelper
[](https://github.com/M1S2/AssemblyInfoHelper/releases/latest)
[](https://github.com/M1S2/AssemblyInfoHelper/blob/master/LICENSE.md)
[](https://www.nuget.org/packages/AssemblyInfoHelper/)
[](https://www.nuget.org/packages/AssemblyInfoHelper/)
## Purpose
### Version Info Display
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

### Readme Viewer
The Readme is get from the README.md file in the path given when creating the WindowAssemblyInfo or the application startup path.
This page is hidden if not file is found.

### Changelog Viewer
The Changelog is get from the CHANGELOG.md file in the path given when creating the WindowAssemblyInfo or the application startup path.
This page is hidden if not file is found.

### GitHub Release Viewer
GitHub releases are taken from repository at the given URL (see usage below).
This page is hidden if not repository URL is assigned. This also disabled the complete update feature (see below).

The **AssemblyInfoHelper.Demo** is used to test the AssemblyInfoHelper.
## Installation
Include the [latest release from nuget.org](https://www.nuget.org/packages/AssemblyInfoHelper/) in your project.
You can also use the Package Manager console with: `PM> Install-Package AssemblyInfoHelper`
## Usage
### Show WindowAssemblyInfo
The simplest way to show the WindowAssemblyInfo is to add a `AppInfoButton` control to the application. Everything is done inside this control.
```csharp
xmlns:assemblyInfoHelper="clr-namespace:AssemblyInfoHelper;assembly=AssemblyInfoHelper"
...
```

Or you can open the info window with:
```csharp
AssemblyInfoHelper.WindowAssemblyInfo window = new AssemblyInfoHelper.WindowAssemblyInfo();
window.ShowDialog();
```
### GitHub Releases and Update Feature
To show all releases from GitHub, the repository URL must be assigned.
The easiest way is to set the `RepositoryUrl` in the .csproj file (see Add assembly attributes > New style Projects below).
An embedded Nuget build target will make this setting available to the AssemblyInfoHelper.
The older alternative is to add the `GitHubRepo` attribute to the AssemblyInfo.cs file or anywhere else in your application (see Add assembly attributes > Old style Projects below).
## Add assembly attributes
### New style projects
Add the following properties to a .csproj file to include assembly attributes:
```csharp
true
TitleText
DescriptionText
CompanyText
ProductText
Copyright © 2022
https://github.com/M1S2/AssemblyInfoHelper
```
### Old style projects
Add the following lines to the AssemblyInfo.cs file to include assembly attributes:
```csharp
[assembly: AssemblyTitle("TitleText")]
[assembly: AssemblyDescription("DescriptionText")]
[assembly: AssemblyCompany("CompanyText")]
[assembly: AssemblyProduct("ProductText")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("TrademarkText")]
[assembly: AssemblyInfoHelper.GitHub.GitHubRepo("https://github.com/M1S2/AssemblyInfoHelper")]
```
## 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%_%Version%.zip (e.g. %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:
```csharp
[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.
```csharp
[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.
```csharp
[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.