Newbie support for WPF .msi install project

243 views
Skip to first unread message

icanopit

unread,
May 27, 2011, 1:16:05 PM5/27/11
to .Net Reactor Support
Hello All.

I just purchased .NET Reactor 2 days ago, and I'm stuck.

I found this group and I'm perturbed re the posts on lack of support.
I sent my support request yesterday to 'support @ eziriz.com', so I
guess I'll get a faster response from this group.

Here's my 'problem'.
I purchased .NET Reactor. (Version 4.4.0.0).
My PC is an Intel Core i7 930 at 2.8GHz, with 12GB RAM and 2TB disc
space.
I'm using Windows 7 Professional (64bit) with SP1.

I have a WPF application developed in VS2010 for .NET Framework 4.0.

I have added a Visual Studio Installer Setup Project.

Before installing .NET Reactor I could create an installation package
which consisted of
1) a 'setup.exe' file and
2) a .msi file (I used the name 'Deploy' so had a file named
'Deploy.msi'.
I zipped these with 7-zip and could install the application on a test
computer to test my installation procedure.

I ran .NET Reactor. I have created a license file, keylist pair file,
and a project file. After running .NET Reactor I no longer have the
'setup.exe' and 'deploy.msi' files.

I am unable to determine from the help system what to 'package' as
part of my application installation.

I don't understand what is meant by "Main Assembly" when I run .NET
Reactor.

So my primary question is 'which file do I select as "Main Assembly"
when I run .NET Reactor?'
Is it the AppFileName.exe?
Is it setup.exe installation file?
Is it the AppFileName.xxproj file?
Is it the solution file?
Or is is some other file assembly?

I chose the AppfileName.exe and after selecting the 'Protect' tab
under Tasks (which completed successfully), my setup.exe file and
deploy.msi files are 'gone'.

Is it me or .NET Reactor?

I have a very small WPF test app I can provide, if that would help.
The setup.exe is 418kb and deploy.msi is 518kb.

I would appreciate any help and advice you could give.

Kindest Regards.

Francois Rouleau

unread,
May 27, 2011, 11:44:06 PM5/27/11
to net-react...@googlegroups.com
I tell you what I've done and it worked for me:

1) I build my project in vs2010 - in Configuration Manager (under Build menu) I choose to build only my project (Ex: "MyProject") and uncheck my "SetupProj" (since I added a setup project in my solution through menu File/Add...)

2) I run Net Reactor and on the file tab I "Open" the main assembly which is "MyProject.exe" in the Bin\Release Or Bin\Debug folder of your project. In Net reactor, on the  "Protection Presets" menu choose "Application Standard". Then in the quick setting panel at the bottom you can add "Necrobit" if you want. Then move to Setting tab to set what ever you want....

3) In Net Reactor ... click "Protect" (on the left panel) ... this will create your protected assembly in a folder ("MyProject_Secure") under your bin folder.

4) Save your project (Net Reactor project). Quit Net Reactor

5) Back to Visual studio, open "MyProject" go to Configuration Manager (under Build menu) and choose to build only your "SetupProject" (that is uncheck "MyProject" and check "SetupProject". Then, BEFORE you build or rebuild this setup project:  Copy your protected assembly ("MyProject.exe") to the "\obj" directory of your project because that is the place where the setup builder of visual studio take is source.

6) In Visual Studio, buil your setup and since you unchecked "MyProject" in the Configuration Manager, Visual studio will not rebuild "MyProject" and will not after that overwrite your protected assembly in the Obj folder.

I hope it will help you

Francois
(ps: sorry for my bad english, my native language is french)




--
You received this message because you are subscribed to the Google Groups ".Net Reactor Support" group.
To post to this group, send email to net-react...@googlegroups.com.
To unsubscribe from this group, send email to net-reactor-sup...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/net-reactor-support?hl=en.


Francois Rouleau

unread,
May 28, 2011, 7:13:39 AM5/28/11
to net-react...@googlegroups.com
I should say that I worked with a windows form project, but I guess it should be the same for a WPF project. There is also an addin to visual studio for Net Reactor but I did not use it, It may be easier, but no experience with it.

icanopit

unread,
May 28, 2011, 11:50:35 AM5/28/11
to .Net Reactor Support
Bonjour Francois,
Je suis Ecossais - vive La Vieille Alliance!
Your English is very good. I wish my French was equal to yours.

Thank you for your replies. I will go back and redo using your
suggestions.

From your suggestions I can now see some of my mis-steps. They were:
1) I built 'MyProject' and 'SetupProj' as normal in \Debug and
\Release
and assumed that .NET Reactor would 'think' and 'work' the same way as
Microsoft.
2) I did use the addin, so this made my confusion worse.
3) Having tested my installation procedure, it was extremely confusing
to find that
the 'SetupProj.exe' and 'MyProject.msi' files had been deleted after I
ran .NET Reactor.
4) I did discover the folder 'MyProject_Secure', and I did copy
the .exe file to
\obj, but when I tried a re-build of 'SetupProj' the addin (I had
chosen earlier)
kicked in during the build and added more to my confusion.
I did notice that in the \obj folder there is also a
'MyProject.exe.hash' HASH file.
This looks like MS is creating some sort of security on the .exe file.

I will post my results after I try your suggestions. Please accept my
thanks.

To my knowledge there is no difference in Form or WPF projects
regarding
Setup and Deployment.

Kindest Regards.

On May 28, 6:13 am, Francois Rouleau <rouf0...@gmail.com> wrote:
> I should say that I worked with a windows form project, but I guess it
> should be the same for a WPF project. There is also an addin to visual
> studio for Net Reactor but I did not use it, It may be easier, but no
> experience with it.
>
> >>http://groups.google.com/group/net-reactor-support?hl=en.- Hide quoted text -
>
> - Show quoted text -

icanopit

unread,
May 28, 2011, 9:39:14 PM5/28/11
to .Net Reactor Support
Hello Francois,

This worked!

I took some time to document what I did as I went along and was
successful using your suggestions.

Merci beaucoup mon ami!

Kindest Regards.
> > >>http://groups.google.com/group/net-reactor-support?hl=en.-Hide quoted text -
>
> > - Show quoted text -- Hide quoted text -

Francois Rouleau

unread,
May 28, 2011, 10:31:23 PM5/28/11
to net-react...@googlegroups.com
You welcome.

Now, if you want to make an installer with only one file instead of 2 (setup & msi). I suggest to use 7Zi (http://www.7-zip.org/)  and the use of self-extracting installer (see: http://7zsfx.info/en/)

Have fun...

icanopit

unread,
May 29, 2011, 12:09:23 PM5/29/11
to .Net Reactor Support
Fabulous!
> > > > >>http://groups.google.com/group/net-reactor-support?hl=en.-Hidequotedtext -
>
> > > > - Show quoted text -- Hide quoted text -
>
> > > - Show quoted text -
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > ".Net Reactor Support" group.
> > To post to this group, send email to net-react...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > net-reactor-sup...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/net-reactor-support?hl=en.- Hide quoted text -

Francois Rouleau

unread,
May 29, 2011, 3:20:03 PM5/29/11
to net-react...@googlegroups.com
First I don't think I am an expert! I just experiment and try to make thing easier for a customer and
for me if I can. There may be some other ways and better approach to do installation package,
but I found the use of 7zip interesting.

Basically, if you download and install the "7z SFX Tools", it create a folder
"7z SFX Tools" and within a file named "7zsd_LZMA.sfx". This is the one I used. I did
not try other options; only the one I will tell you:

1) on my desktop, I created a folder "MyApp_Release". In this folder I put:

    - setup.exe       (witch contains your prerequisites (/link to download them)
   
    - MyProject.msi   (which contains MyProject.exe, MyProject.License, all required files for your project. )
   
    - 7zsd_LZMA.sfx   (copied from "7z SFX Tools" folder )
   
    - MyProject.7z    (after I compressed setup.exe & Myproject.msi with 7zip )
  
    - MyProject.ico   (My app icon file)
    
    - config.txt:      ;!@Install@!UTF-8!
                      RunProgram="setup.exe"
                      GUIMode="2"
                      ;!@InstallEnd@!
                     
    - a link to ResHacker  (usefull if I have to redo this process - I have everything I need under this folder)
    - a link to 7zip            (idem)
                     
2) Once I have all these files ready in my "MyApp_Release" folder, I open
a CMD window and navigate to this folder:

 =>   cd C:\Users\Francois\Desktop\Release_Prod
   
and run (inside the same CMD window):

 =>   COPY /b 7ZSD_LZMA.sfx + config.txt + MyProject.7z MyProjectInstaller.exe

                     
 3) run ResHacker.exe to change the 7z icon to yours
 
 So, at the end you only have one file (MyProjectInstaller.exe). All your resource files are normally inside your msi,
 event the license file that you should include in your setup application folder when you
 initially build your setup from inside visual studio.
 
 I may not have tell you that before, but one step before or while creating your setup
 project in visual studio is to include your license file(s) in your setup application
 folder (setup project).So you may have to go back in Net Reactor to create those
 license files. Add them to the  setup project before you build.
 
 Creating License file, Creating a secure assembly and Creating a setup project are
 different task.
 
To resume - in normal order:

 1- Build your MyProject.exe  (release or Debug)
 2- Protect your assembly (Net Reactor)
 3- Create your License file (Net Reactor)
 4- Copy the secured assembly from MyProject_Secure to Obj folder
 5- Add a setup project to your project: add primary output to app folder + license files + other files you need  ...set all prerequisites... (Visual Studio)
 6- Change the setting in Configuration Manager to build only "MySetupProject" (Visual Studio)
 7- Build  MySetupProject
 8 - then you can start building a single package using 7z
 
 
 I have no experience for project with more than one license file.
 
One final note: if you downloads "7z SFX Tools" there is a help file  "7zSD_EN.chm"  with config.txt examples and a section to get you started "First Step". The translation, from russian to english is a little weird  but is understandable (I guess my frenchglish is weird also). As I told you before I did not try other options,  switchs,... only the config.txt I show you.
 
 That's it.

icanopit

unread,
May 29, 2011, 4:54:55 PM5/29/11
to .Net Reactor Support
Thank you Francois.

I'll try this.

Kindest Regards.
> ...
>
> read more »- Hide quoted text -

Francois Rouleau

unread,
May 29, 2011, 5:56:49 PM5/29/11
to net-react...@googlegroups.com
Hi, as per the licensing system I am a newbie myself, it is my first experience.
Since my own project is currently a "Beta version" and "Free" as such, I just put
a license file that should terminate the program in january 2012. I expect to put
new beta versions with new license file that could extend this deadline.
When I said "License files" to include in your "msi", I meant a "Trial" license
file. If your customer is interested in your software then he will buy a
license file from you. My understanding is that you must then generate the license
from within Net reactor using your main assembly key and send the generated license
file to your customer to put in the application folder by himself or you may in
code automate this process, which I have not done myself (not yet).

There is also Hardware lock that required a user to run HID.EXE, so it must
for sure be included in the release package.

There is also the possibility to use the shareIt module.

So I have many more questions that I did not answers myself that could possibly
change my development & deployment strategy.

I would like to see other users of this forum expose their solutions, best practices
and to shed some light on the required step to do this (as I did, step by step)

In brief, some tutorials would be welcome (How to series)

Thanks


icanopit

unread,
May 29, 2011, 6:56:55 PM5/29/11
to .Net Reactor Support
This a good post Francois.

As much as I agree with you, I fear that "... some tutorials would be
welcome
(How to series)..." may not be forthcoming as we are dealing with
security/
encryption/obfuscation of application software.

Hackers love demos and tutorials. There is nothing better to learn
'how'
then 'un-how' it, just for fun.

Some developers also don't want to giveaway their techniques for free.

But I agree with you, such demos and tutorials would greatly help me
too.
.NET Reactor is missing good documentation, and with no response from
"support @ eziriz dot com" it is difficult to recommend this product
to anyone.

Here's hoping...

Kindest Regards.

Munawar Bijani

unread,
May 29, 2011, 7:44:43 PM5/29/11
to net-react...@googlegroups.com
What I do in my project is let the program run without a license file
installed. Also, the program itself gives the user their Hardware ID--I
don't use HID.exe. You can show the user's HID on the screen by printing
LicenseGenerator.HardwareID.

So the program runs in demo if no valid license exists. Once the user
purchases the program, an automated system takes their HID and generates a
lock file which they download through the program and it registers.

I like this approach better than using HID.exe and manually generating
licenses using the project->License Settings->Generate License button to
generate the license. Plus HID.exe puts their HID in a file, which they then
have to open and get their HID out of it. So showing the HID on the screen
is much easier for the user.

This is one of the big advantages ot Reactor that I have found--it's so
flexible it's amazing. It's unfortunate that the company doesn't respond to
support requests as much as they used to and yes,t he documentation is
lacking. But I still feel it's definitely a great buy.
Munawar A. Bijani
BPCPrograms, LLC
http://www.bpcprograms.com
muna...@gmail.com

Here's hoping...

Kindest Regards.

--

Francois Rouleau

unread,
May 29, 2011, 8:33:16 PM5/29/11
to net-react...@googlegroups.com
Thanks Munawar.

Francois Rouleau

unread,
May 29, 2011, 9:36:54 PM5/29/11
to net-react...@googlegroups.com
Munawar,  I just remember now that I test the option of running the application in full operation mode without license file, but enabling "Expiration Date". After the Expiration date came, the application was displaying a warning and then continued. I may not have done the right test at that time but that's why I choose to use a license file. What I don't remember is if I test with code inside my application to verify the expiration date, but I think I've done test with this option with the same result (Warning...then the application continue running). Did your demo are running in full mode or with some function not available and with an "Expiration date" ?

Munawar Bijani

unread,
May 29, 2011, 9:40:00 PM5/29/11
to net-react...@googlegroups.com
Hi,
No my program has no expiration date. I run it in full mode with restrictions. IE: if (!LicenseGenerator.Status.Licensed) //Don’t let the user execute this option.
 
So all I use Reactor for is the actual registration; Reactor doesn’t control trial states or anything like that.
 
Munawar A. Bijani
BPCPrograms, LLC
http://www.bpcprograms.com
muna...@gmail.com
Thanks Munawar.


To unsubscribe from this group, send email to mailto:net-reactor-support%2Bunsu...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/net-reactor-support?hl=en.
--
You received this message because you are subscribed to the Google Groups ".Net Reactor Support" group.
To post to this group, send email to net-react...@googlegroups.com.
To unsubscribe from this group, send email to mailto:net-reactor-support%2Bunsu...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/net-reactor-support?hl=en.

icanopit

unread,
May 30, 2011, 2:07:15 PM5/30/11
to .Net Reactor Support
Hello Munawar,

In another post, I can't get past the LicenseGenerator Class so I'm
unable to try your suggestions.

Are you able to help me get past my problem with the LicenseGenerator
Class?

Kindest Regards.

On May 29, 8:40 pm, "Munawar Bijani" <munaw...@gmail.com> wrote:
> Hi,
> No my program has no expiration date. I run it in full mode with restrictions. IE: if (!LicenseGenerator.Status.Licensed) //Don’t let the user execute this option.
>
> So all I use Reactor for is the actual registration; Reactor doesn’t control trial states or anything like that.
>
> Munawar A. Bijani
> BPCPrograms, LLChttp://www.bpcprograms.com
> munaw...@gmail.com
>
> From: Francois Rouleau
> Sent: Sunday, May 29, 2011 9:36 PM
> To: net-react...@googlegroups.com
> Subject: Re: Newbie support for WPF .msi install project
>
> Munawar,  I just remember now that I test the option of running the application in full operation mode without license file, but enabling "Expiration Date". After the Expiration date came, the application was displaying a warning and then continued. I may not have done the right test at that time but that's why I choose to use a license file. What I don't remember is if I test with code inside my application to verify the expiration date, but I think I've done test with this option with the same result (Warning...then the application continue running). Did your demo are running in full mode or with some function not available and with an "Expiration date" ?
>
> On Sun, May 29, 2011 at 8:33 PM, Francois Rouleau <rouf0...@gmail.com> wrote:
>
>   Thanks Munawar.
>
>   On Sun, May 29, 2011 at 7:44 PM, Munawar Bijani <munaw...@gmail.com> wrote:
>
>     What I do in my project is let the program run without a license file installed. Also, the program itself gives the user their Hardware ID--I don't use HID.exe. You can show the user's HID on the screen by printing LicenseGenerator.HardwareID.
>
>     So the program runs in demo if no valid license exists. Once the user purchases the program, an automated system takes their HID and generates a lock file which they download through the program and it registers.
>
>     I like this approach better than using HID.exe and manually generating licenses using the project->License Settings->Generate License button to generate the license. Plus HID.exe puts their HID in a file, which they then have to open and get their HID out of it. So showing the HID on the screen is much easier for the user.
>
>     This is one of the big advantages ot Reactor that I have found--it's so flexible it's amazing. It's unfortunate that the company doesn't respond to support requests as much as they used to and yes,t he documentation is lacking. But I still feel it's definitely a great buy.
>     Munawar A. Bijani
>     BPCPrograms, LLC
>    http://www.bpcprograms.com
>     munaw...@gmail.com

icanopit

unread,
May 30, 2011, 5:23:18 PM5/30/11
to .Net Reactor Support
Thanks Munawar, but I've solved my (user error) puzzle.

Kindest Regards.
Reply all
Reply to author
Forward
0 new messages