Nov 07, 2013
02:28 PM
In both IS2011 and IS2013, I am seeing this same behavior. I have a project with 2 features. The component associated to each feature has the same directory and sub-directories for each component except they have a different wildcard for what files to exclude. So there are 10 files in the source folder and 2 of them are NOT included in the first component and 3 different ones are NOT included in the 2nd component. When you look at the file list in the IS IDE everything looks correct as far as the file list goes. But, when you run the installation, all 10 files are layed down regardless of which feature you choose. Anyone seen this behavior before? Is it a problem that both components are pointing to the same source location? I have not seen this problem before when the source folders differ for the 2 components.
... View more
- Tags:
- featuregetdata
Labels
- Labels:
-
InstallShield 2013
Oct 29, 2010
09:09 AM
Looking further, it appears, as I thought, that you cannot use WindowsFolder in a Installscript project. You must use WINDIR.
... View more
Oct 28, 2010
11:09 AM
You did not say what type of IS project you are using. If you can use InstallScript in your project, here is some code that works for IIS6 and IIS7 for setting up app pools. This routine is called passing in the name of the Virtual Directory to create. It does other things as well that you can ignore if they are not important to you. /////////////////////////////////////////////////////////////////////////////// // // // Function: CreateVirDir // // // // Purpose: This function creates an IIS Virtual Directory // // // /////////////////////////////////////////////////////////////////////////////// function CreateVirDir(IISSite, SiteDir) BOOL SiteExisted; object objIIS_Root, objVirtDir, objAppPool, objIIS_WS, objSchedule; STRING svAppPool, strMsg, svT, svHold, svCmd, svProg, svParms[500], svOut; STRING szField1, svF1, svF2; NUMBER svPoolStatus, nLineNum; begin svAppPool = "M5WebServices"; if @IFX_PRODUCT_NAME = "M5 Pages, Components and Help" then svAppPool = "M5AppServices"; endif; if (svIISVer = "6") then if (SYSINFO.WINNT.bWinServer2003 = TRUE) then set objIIS_Root = CoGetObject("IIS://localhost/W3SVC/AppPools", ""); if (IsObject(objIIS_Root)) then try set objAppPool = objIIS_Root.GetObject("IISApplicationPool", svAppPool); svPoolStatus = TRUE; catch set objAppPool = objIIS_Root.Create("IISApplicationPool", svAppPool); svPoolStatus = FALSE; objAppPool.SetInfo(); endcatch; if (IsObject(objAppPool)) then // In minutes objAppPool.PeriodicRestartTime = 1740; if svAppPool = "M5WebServices" then // In number of events // objAppPool.PeriodicRestartRequests = 4000; // In bytes // objAppPool.PeriodicRestartMemory = 512000; // In bytes // objAppPool.PeriodicRestartPrivateMemory = 196608; endif; objAppPool.SetInfo(); endif; set objAppPool = NOTHING; set objIIS_Root = NOTHING; endif; endif; set objIIS_Root = CoGetObject("IIS://localhost/W3SVC/1/Root", ""); if (IsObject(objIIS_Root)) then try set objVirtDir = objIIS_Root.GetObject("IISWebVirtualDir", IISSite); SiteExisted = TRUE; catch set objVirtDir = objIIS_Root.Create("IISWebVirtualDir", IISSite); SiteExisted = FALSE; endcatch; if (IsObject(objVirtDir)) then // Do not recreate the CrystalExports site in case the output // for reports has been manually changed (file sharing in use // multiple web servers. if (IISSite = "CE_BIN" && SiteExisted) then svLine = "Business Objects Exports Bin directory already exists. It will not be recreated."; nResult = WriteLine(nvLogFileHandle, svLine); elseif (IISSite = "Uploads" && SiteExisted) then svLine = "Uploads directory already exists. It will not be recreated."; nResult = WriteLine(nvLogFileHandle, svLine); else try objVirtDir.Path = SiteDir; objVirtDir.AccessRead = TRUE; objVirtDir.AccessScript = TRUE; if (SYSINFO.WINNT.bWinServer2003 = TRUE) then objVirtDir.AspMaxRequestEntityAllowed = 10485760; //10 MB objVirtDir.AspBufferingLimit = 5242880; //5 MB endif; objVirtDir.AccessWrite = FALSE; objVirtDir.AspEnableParentPaths = TRUE; objVirtDir.EnableDirBrowsing = FALSE; objVirtDir.AspScriptLanguage = "JScript"; objVirtDir.AppFriendlyName = IISSite; objVirtDir.AppIsolated = 2; objVirtDir.AspAllowSessionState = FALSE; if (SYSINFO.WINNT.bWinServer2003 = TRUE) then objVirtDir.AppPoolID = svAppPool; endif; objVirtDir.SetInfo(); objVirtDir.AppCreate(TRUE); objVirtDir.SetInfo(); catch svLine = "Unable to create Virtual Directory " + IISSite + ". You will have to create it manually."; nResult = WriteLine(nvLogFileHandle, svLine); endcatch; endif; endif; endif; else // IIS 7 setup // Check for the correct application pool first svCmd = "cmd"; svProg = " /C " + WINDIR ^ "system32" ^ "inetsrv" ^ "appcmd.exe"; svOut = szAppPath ^ "m5iis.txt"; svT = ' list apppool /name:"' + svAppPool + '" >>' + svOut; svParms = svProg + svT; svLine = "Checking for " + svAppPool + " application pool"; nResult = WriteLine(nvLogFileHandle, svLine); nResult = LaunchAppAndWait(svCmd, svParms, WAIT | LAAW_OPTION_HIDDEN); if (FileGrep (svOut, svAppPool, szField1, nLineNum, RESTART) != 0) then svLine = "Need to create application pool " + svAppPool; nResult = WriteLine(nvLogFileHandle, svLine); svF1 = ' add apppool /name:"' + svAppPool + '" /managedRunTimeVersion:"v2.0" /managedPipelineMode:"Classic" '; // svF2 = '/autoStart:"true" /recycling.periodicRestart.requests:"4000" /recycling.periodicRestart.time:"24:00:00" /recycling.periodicRestart.memory:"512000" /recycling.periodicRestart.privateMemory:"196608"'; svF2 = '/autoStart:"true"'; svT = svF1 + svF2; svHold = svF1 + svF2; svParms = svProg + svT; svLine = "Creating " + svAppPool + " application pool"; nResult = WriteLine(nvLogFileHandle, svLine); nResult = LaunchAppAndWait(svCmd, svParms, WAIT | LAAW_OPTION_HIDDEN); svT = ' list apppool /name:"' + svAppPool + '" >>' + svOut; svParms = svProg + svT; nResult = LaunchAppAndWait(svCmd, svParms, WAIT | LAAW_OPTION_HIDDEN); if (FileGrep (svOut, svAppPool, szField1, nLineNum, RESTART) != 0) then svLine = "Unable to create application pool " + svAppPool; nResult = WriteLine(nvLogFileHandle, svLine); svLine = " command used was " + svHold; nResult = WriteLine(nvLogFileHandle, svLine); bProblem = TRUE; endif; endif; nResult = DeleteFile(svOut); // Now add the IIS application svCmd = "cmd"; svProg = " /C " + WINDIR ^ "system32" ^ "inetsrv" ^ "appcmd.exe"; svOut = szAppPath ^ "m5iis.txt"; svT = ' list app http://localhost/' + IISSite + '" >>' + svOut; svParms = svProg + svT; svLine = "Checking for " + IISSite + " IIS application"; nResult = WriteLine(nvLogFileHandle, svLine); nResult = LaunchAppAndWait(svCmd, svParms, WAIT | LAAW_OPTION_HIDDEN); if (FileGrep (svOut, IISSite, szField1, nLineNum, RESTART) = 0) then if (IISSite = "CE_BIN") then svLine = "Business Objects Exports Bin directory already exists. It will not be recreated."; nResult = WriteLine(nvLogFileHandle, svLine); return 0; elseif (IISSite = "Uploads") then svLine = "Uploads directory already exists. It will not be recreated."; nResult = WriteLine(nvLogFileHandle, svLine); return 0; endif; endif; svT = ' add app /site.name:"Default Web Site" /path:/' + IISSite + ' /physicalPath:' + SiteDir + ' /applicationPool:' + svAppPool; svParms = svProg + svT; svLine = "Creating IIS Application " + IISSite + " using paramters of " + svT; nResult = WriteLine(nvLogFileHandle, svLine); nResult = LaunchAppAndWait(svCmd, svParms, WAIT | LAAW_OPTION_HIDDEN); nResult = DeleteFile(svOut); endif; return 0; end;
... View more
Oct 27, 2010
05:22 PM
There have been other posts on this forum about the use of WINDR or WindowsFolder in IS projects. Many times when a machine is access via Citrix or Terminal Services or RDP, an IS project during an install will have problems properly resolving the WINDIR variable. Instead of yielding c:\windows it will yield c:\users\abc\windows where users\abc is the HOME DIRECTORY for the user logged on via RDP. An alternative is to use the WindowsFolder directive. But, I have not been able to figure out who to use it in an InstallScript project. For example, here is a line of code from a script .. svParams = "/u /s " + WINDIR ^ "Crystal\\CRUFLmfive.dll"; I have tried various methods to use WindowsFolder instead. It will show up as if it is a reserved word, but I can not get the script to properly compile using WindowsFolder. Thanks
... View more
Labels
- Labels:
-
InstallShield 2009
Jun 17, 2010
07:22 AM
Thanks. This should work for me. It would be nice if there where InstallShield native IIS scripting methods instead.
... View more
Jun 16, 2010
04:09 PM
I use Installscript projects for my installations of IIS web sites. I use WMI/ADSI to create sites, application pools etc. All works find in IIS 6. In IIS 7 (Windows server 2008), these methods no longer work during installation unless the server has IIS6 Management Compatibility enables and installed on the server. I would prefer not to have that as a requirement. I am willing to update/enhnce my InstallScript for IIS 7 and use the Microsoft.Web.Administration toolset (ServerManager) but I am not sure how I invoke this toolset in an InstallShield script in my project. Here is a snippet of what I use for IIS6. Anyone have an example for IIS 7? if svIISVer = "6" then svAppPool = "M5WebServices"; set objIIS_Root = CoGetObject("IIS://localhost/W3SVC/AppPools", ""); if (IsObject(objIIS_Root)) then try set objAppPool = objIIS_Root.GetObject("IISApplicationPool", svAppPool); svPoolStatus = TRUE; catch set objAppPool = objIIS_Root.Create("IISApplicationPool", svAppPool); svPoolStatus = FALSE; svLine = "Creating new App Pool"; nResult = WriteLine(nvLogFileHandle, svLine); objAppPool.SetInfo(); endcatch; if (IsObject(objAppPool)) then // In minutes objAppPool.PeriodicRestartTime = 120; // In number of events objAppPool.PeriodicRestartRequests = 4000; // In bytes objAppPool.PeriodicRestartMemory = 512000; // In bytes objAppPool.PeriodicRestartPrivateMemory = 196608; endif; set objAppPool = NOTHING; set objIIS_Root = NOTHING; endif;
... View more
Labels
- Labels:
-
InstallShield 2009
Sep 03, 2008
01:07 PM
Can you give me a URL to get to "help"? I do not have IS 2009 installed anywhere. Thanks
... View more
Sep 03, 2008
12:55 PM
I have a series of Installations used in DevStudio9 and I am considering upgrading to Installshield 2009. All of these installs are Installscript installations and do not use MSI at all. I prefer not to use MSI either. Does anyone have any experience converting DevStudio9 Installscript projects to Installshield 2009 and are there any pitfalls? Thanks
... View more
Labels
- Labels:
-
InstallShield 2009
Latest posts by mdbritt
Subject | Views | Posted |
---|---|---|
1585 | Nov 07, 2013 02:28 PM | |
507 | Oct 29, 2010 09:09 AM | |
757 | Oct 28, 2010 11:09 AM | |
2367 | Oct 27, 2010 05:22 PM | |
647 | Jun 17, 2010 07:22 AM | |
5331 | Jun 16, 2010 04:09 PM | |
674 | Sep 03, 2008 01:07 PM | |
3119 | Sep 03, 2008 12:55 PM |
Activity Feed
- Posted Feature selection in Installscript project not working properly on InstallShield Forum. Nov 07, 2013 02:28 PM
- Tagged Feature selection in Installscript project not working properly on InstallShield Forum. Nov 07, 2013 02:28 PM
- Posted Re: Use of WINDIR in Installscript Project on InstallShield Forum. Oct 29, 2010 09:09 AM
- Posted One answer on InstallShield Forum. Oct 28, 2010 11:09 AM
- Posted Use of WINDIR in Installscript Project on InstallShield Forum. Oct 27, 2010 05:22 PM
- Posted Thanks on InstallShield Forum. Jun 17, 2010 07:22 AM
- Posted Installscript Project and IIS 7 on InstallShield Forum. Jun 16, 2010 04:09 PM
- Posted Not sure where to look on InstallShield Forum. Sep 03, 2008 01:07 PM
- Posted Converting DevStudio9 installs to Installshield 2009 on InstallShield Forum. Sep 03, 2008 12:55 PM