Don't exactly what you mean by "open in another software", but I'll assume you mean you can decompile .NET assemblies and see the actual source code.
For that there is obfuscation. By obfuscating your sources, people will still be able to decompile the assembly, but it'll be a lot harder to understand the code (though not impossible). There are a couple of tools available, both free and paid.
Eazfuscator.NET[
^] (free)
Dotfuscator[
^] (community edition is free, see more info on that at
Microsoft[
^])
SharpObfuscator[
^] (free)
Confuser[
^] (free)
And a
few others[
^]
You'll also want to make sure you sign your applications with a code signing certificate (not free). This will ensure to your users that the assembly originates from you (or rather your company) and hasn't been tampered with.
If you mean to prevent the use of your assembly in other applications, you can do the following:
How can I prevent unauthorized code from accessing my assembly in .NET 2.0?[
^]
You'll need to be sure to sign your assemblies and executables with a Strong Name Key.