"One time use" and "Unique" is a problem, if you cannot use a connection to a server: if I duplicate the installation program before I install it, or I install it into a virtual machine then there is no way for your app to detect a second copy and refuse to work.
You can tie a particular set of hardware to an installation by using the various serial numbers that can be read, but even then you need an app to read them, send them somehow to you and for you to send back an installation code which is specific to that hardware. And without the internet ... that's going to take time, and be prone to errors both of which will serious annoy clients.
Even then, a VM installation will probably get round that pretty easily.
And ... this is C#. Which means that the EXE file can be easily decompiled to produce pretty good code - so that can be easily changed to disable the licence checking completely. That can be made harder by obfuscation, but that's not impossible to work round if you know how to code.
And then there is the cost: the more effort you put in, the more it costs you to implement. And the more complex the system is to get round, the less reliable it is, and the more it annoys clients. Which means more cost for you in support, and lost customers / more refunds.
You need to estimate how many copies you will sell at what price with and without copy protection and work out where it becomes economically unviable to include it: it's a surprisingly low number in most cases.
Historically, it's only worth it for high cost and low volume software: high volume means "a good challenge" for crackers who will almost certainly disable your protection in a lot less time that it takes to include it!
For example, back before internet based licencing, Adobe had a large team working on copy protection in Photoshop - but on the same day they released a new version there would be a cracked version available!
Quote:
I have not found a suitable and comprehensive solution for it on the Internet.
And now you know why ...