Carnivorous Plants Website
Carnivorous Plants in the Wilderness
by Makoto Honda




This is a basic 3D CAD system I created.

It is written in VC++ using MFC and OpenGL.




Download    <<<<--- 2023/04/18


This book is my working document for this CAD package.....


Deployment  -  Windows Installer (VS2019)      2022-Oct-05

To download this CAD program, visit:

I am using VS2019 community version. I also installed Windows Installer for VS2019.

ClickOnce is not available for Windows applications, so I used VS2019 Windows Installer here to create a msi setup file for deployment for anyone interested in trying out this CAD package.

In VS2019, click Extensions -> Manage Extensions

        -> select Microsoft Visual Studio Installer Projects    -> then Close

Visual Studio 2019:

First, select the "debug" configuration and Build-->Clean Solution. Do the same for "release". Then on "release" click Build-->Build Solution.

Now we have only a freshly built solution in release configuration. This is what we are going to package.....

1.  To add a setup project to an existing solution ---
     Open a solution (GS.sln) that you want to deploy. Make sure configuration is set to "release".
2.  R-click the solution in Solution Explorer, and Add --> New Project.
3.  In the Add a new project window,
4.  From the right pane, select Setup Wizard. (not Setup Project).

5.  Type the Project name as "Setup_G2022" and location is ok as is.  Click Create.
6.  Follow Setup Wizard as below (1-5)

Setup Wizard 2 --  Select a radio button : Create a setup for a Windows application.  Then Next.
Setup Wizard 3 --  In Choose project outputs to include, select "Primary Output" and "Content Files" for all projects (including G project).




7.  Click Next. Finish.
8.  Click Application Folder from the left pane (File System on Target Machine). All contents shown on the right pane.

9.  R-click "Primary Output from G (Active)"    and Create a shortcut...   Rename it "G2022A".
10.  Now, cut and paste this shortcut to User's Desktop (File System on Target Machine), and also...
11.  Add a folder "G-System" under User's Programs Menu (File System on Target Machine)
      and add the same shortcut there. (Must make another shortcut – go to 9.)
12. Now, R-click the setup project (Setup_G2022) from the Solution Explorer and Build. Confirm the build is good without errors.
13. Now, try installing it as a test. R-click the setup project (Setup_G2022) and Install (to test)...
Follow Setup Wizard (Setup_G2022A) -> Everyone,
à Install complete.

Make sure to UN-INSTALL the old one first if any!!!!
14. This creates setup.exe and Setup1.msi.  We need to distribute only Setup1.msi to customers.
Now, double-click G2022A from the desktop to start the CAD program.

Search “*.msi” in FileExplorer… 

The msi file is found in ….\GS\Setup_G2020A\Release\Setup_G2022A.msi

15. Copy this .msi file somewhere in my Web folder. Then make a link to this file from my web page’s text (DOWNLOAD)............  That's it.


Some Notes for VS2008 – no longer needed in VS2019

After step 9 above ....
I got only 9 DLLs, instead of all 11 DLLs under Application Folder (of File System on Target Machine) - ??? - So I copy-pasted 2 missing DLLs from the Windows Explorer \release\ folder and dropped them in Application Folder.  It turned out that even if there are only 9 DLLs shown, the 2 missing DLLs are being packaged during the Build process (as shown in the build trace pane), and therefore, my manual copy (of the 2 DLLs) was not needed to make a good .msi file!

As noted above, if I have all DLLs copied into G\release\ folder, I get duplicate DLLs packaged in my setup... So I thought, if this is a case, I only need to select Primary Output from G, and I do not need to select all Primary Output from individual projects (since I caopied all DLLs under G\release). I tried this scenario to make a setup.msi. However, this did not work and I got an "ElemPipe.dll missing" run time error...  So, selecting Primary Output for all DLL projects are needed (just make sure to delete all DLLs from G\release folder to avoid duplicates).

Also, make sure to delete all DLLs from G\release\ folder that you might have copied before to run the program. If we keep these DLLs in G\release folder, this results in dup DLLs to be packaged.