Page 1 of 2

Command line build omits .NET Framework

Posted: Sat Sep 02, 2006 12:47 pm
by BrandonK
I’m getting bad install output when compiling from the command line during an automated build.

The build machine specs are:
Pentium D 2.8 GHz
1 GB RAM
Windows Server 2003 Enterprise SP1

The app being installed needs the .NET Framework 1.1 SP1. The install runs the “checknet11sp1” and displays a dialog prompting the user to install if not found.

When this install is built (web executable) on the build machine using the InstallAware IDE the output works as expected. The single EXE file is just over 17 MB in size. This install will run on test machines as expected without error.

When the install is built from the command line during an automated build the compile completes, but the output EXE is too small (only 4 MB). When running the install on a machine without .NET, the dialog prompting the user to install .NET 1.1 SP1 is never shown. An error is generated later when the first Install Assembly command is run.

The results are the same when running the command in a full automated build or solo in a DOS batch file. The command line used looks something like this:

"C:\\Program Files\\InstallAware 6\\miabuild.exe" "[Path]\\[ProjectName] Install.mpr" /b=2 /r CodeRoot="D:\\Builds\\Build Code\" VersionMajor=1 VersionMinor=0 VersionRevision=0 VersionBuild=9999

[Path] is a fully qualified path to the MPR file.

Thanks in advance.

Posted: Sat Sep 02, 2006 3:26 pm
by MichaelNesmith
Please make sure you've installed all necessary plug-ins on the machine where you're doing the command line builds. That should be the cause of the strange behavior.

Command line omits ALL prerequisites!!!

Posted: Sat Sep 02, 2006 7:14 pm
by BrandonK
Thanks for the reply Michael. After reading your post I:

- Uninstalled InstallAware 6 and all 3rd party plugins (mdPLUGINS and EditFile)
- Rebooted the computer
- Reinstalled InstallAware 6, confirming the features selected
- Reinstalled 3rd party plugins

Still getting the same behavior:
- Build in IDE = success
- Build by command line = no .NET 1.1 SP1

The fact that the IDE builds are good leads me to conclude that all necessary plugins are present.

After testing this with the uncompressed build type I discovered that NONE of the prerequisites are being included. This install checks .NET 1.1 SP1 and Windows Installer 2.0. When I run an uncompressed build in the IDE the mDotNet.dll and mWinRun.dll directories get created in the Release\\Uncompressed\\data folder. If I clear out the Release folder and run an uncompressed build from command line, these folders do not appear.

The problem install project installs the client software of a c/s system. For the record, I have zero problems (IDE or command line) with the server install, which uses the MSDE 2000 plugin from mdPLUGINS. Only the client install, when built from the command line, omits the prerequisites.

Posted: Sun Sep 03, 2006 7:51 am
by MichaelNesmith
Hi Brandon,

So you are actually building on the same machine where you have the IDE installed? This ought to work without any hiccups whatsoever. I thought maybe you copied the command line build module to a new folder on its own, and forgot about the plug-ins.

See if you can create a minimum project that you can send me to reproduce this problem; I'll be happy to then escalate this one for you to the dev team so they can take a look at it.

Thanks!

Posted: Mon Sep 04, 2006 10:24 am
by BrandonK
Yes, the build machine has InstallAware installed on it. I didn't move files around or anything (didn't even know you could do that).

On the build machine (WS 2003 SP1):
- I tried to reproduce the problem with the ".NET Setup" template; just created a blank project and modified the prerequisites in the Visual Tab > Application Runtimes. However, this test case didn't exhibit the problem behavior.

- I can consistently reproduce the problem with the install project for my client software. Both the automated build software (FinalBuilder) and the DOS testing script produce the error.

I just rebooted the build machine and ran the DOS script, which runs the command posted previously. This script runs miabuild.exe twice, building an uncompressed layout and a web executable. Neither output contains the specified prerequisites (MSI 2.0 and .NET 1.1 SP1).


On my development machine (XP SP2):
- I cannot reproduce the problem at all. The client install project builds correctly from the command line.


Could this be a Windows Server 2003 SP1 issue? The only real difference between the dev and build machines is the version of Windows; all other software dependencies/versions are identical.

Perhaps the next step is for me to send you the project? Or maybe the build logs?

There is some slack in my development schedule for me to work with you debugging this. Let me know if there's specific tests you'd like run.

Posted: Mon Sep 04, 2006 10:44 am
by MichaelNesmith
Hi Brandon,

Please double-check that on your build machine, miabuild has full admin rights to its folders, the temp folders, and so on. It seems to me this ought to be the cause.

Posted: Mon Sep 04, 2006 11:05 am
by BrandonK
Not sure what you mean by giving miabuild.exe admin rights. My network login is in the Domain Admins group. Automated builds (and all subsequent testing of this problem) were done using my login. I verified in Task Manager that miabuild.exe was running under my login. Is that what you meant?

Posted: Mon Sep 04, 2006 4:21 pm
by MichaelNesmith
Does your network login have admin priviledges on the local machine?

Posted: Mon Sep 04, 2006 6:51 pm
by BrandonK
The Domain Admins group was already in the Local Admins group, so it had admin rights on the local machine. I went ahead and added my login to the Local Admins group, with no change.

Posted: Mon Sep 04, 2006 8:37 pm
by MichaelNesmith
Sorry, I'm not really sure what the problem here might be. Any other details you can provide?

Posted: Tue Sep 05, 2006 7:42 am
by BrandonK
The fact that the IDE can build successfully makes me think everything is installed properly.

I assume that the InstallAware IDE calls miabuild.exe when building a project. Are there any differences between the command line the IDE uses and the one I posted before? Do the order of command line arguments matter?

Would it help if I sent you the project files to review?

Posted: Tue Sep 05, 2006 8:31 am
by BrandonK
Noticed that I put InstallAware in a custom directory when I installed it

Code: Select all

C:\\Program Files\\InstallAware 6\\
Uninstalled it, then reinstalled using the default directory

Code: Select all

C:\\Program Files\\InstallAware\\InstallAware 6\\
Did not fix the problem

Posted: Tue Sep 05, 2006 8:42 am
by MichaelNesmith
Hi Brandon,

If you need further help with this issue, please order a support incident here:
http://www.installaware.com/support-service-options.htm

I'm afraid because your case is not easy to reproduce (we've never experienced the problem here), and could be due to conflicting software on your system, we cannot provide free support, as much as we'd like to.

Posted: Tue Sep 05, 2006 9:55 am
by BrandonK
OK, I tried debugging this a little further, commented out a couple of lines, uncommented them, and now the problem has magically gone away. Have no idea what I did, but I can't reproduce it anymore.

No crack was consumed during debugging or posting about this problem. Seriously. If it pops up again I'll try create a project demonstrating the problem and post it here.

Thanks for your help!

Includes aren't included

Posted: Mon May 07, 2007 2:15 pm
by jgrieves
I have a problem related to this.

When I build from the command line using a folder in the c: drive as the root, the .NET Framework is included, everything's jake and the installer is about 23MB.

When I build using a drive mapped to that same folder (M: is the drive letter), the installer is less than 4MB. This is the same machine, the same files and the same command shell (Visual Studio 2005 environment variables loaded).

This machine has the full Studio version installed and running a build from the IDE using the project file from the M: drive path, everything works. The only problem is running a command line build with the M: root (which is what we do for our production builds).

Any ideas?