打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
64为安装程序要注意的地方
       I have build a single setup.exe on 32 bit machine to support both 32 bit as well as 64 bit application.
  
  When setup.exe is executed it shows 32 bit process in Windows task manager.
  
  While running the setup on 32 bit machine, 32 bit dynamic link libraries(DLL) are getting copied in system32 folder but when setup is executed on 64 bit machine 64 bit dynamic link libraries(DLL) are getting copied in sysWOW64 folder.
  
  But I want to move the 64 bit dynamic link libraries(DLL) which are copied by the setup into sysWOW64 folder to system32 folder.
  
  I would appreciate if anyone can give some input to resolve this
  Thanks in advance
  
  
  
  If you are installing 32bit compiled files on a 64bit OS, then the files are automatically deposited into the "Program File (x86)". If you have native 64bit compiled files then they are placed in the "Program Files" location. This is all a Microsoft convention for the 64bit OS.
  
  I would recommend reading the MS WI Help on the 64bit topic. There are many rules and guidlines on the subject of 64bit installs.
  
  
  I am facing the problem that even after setting default Installation directory
  to ProgramFiles64Folder, Installer chooses ProgramFiles(x86) on 64 bit mchine as default directory to put my 64-bit binaries.
  If I use same installer for 32 bit machine with 32 bit binaries keeping the same program files folder, i.e ProgramFiles64Folder, it chooses default install directory as root drive.
  
  Where I am wrong in setting ProgramFiles64 folder ??
  
  
  
  You can use "Disable ( WOW64FSREDIRECTION );" function and set "PROGRAMFILES64" for "TARGETDIR" in script file.
  
  
  
  The help system has a typo in it. The correct text is:
  SYSINFO.bIsWow64
  notice the letter "I" and not the letter "l".
  SYSINFO.blsWow64
  
  
  Actually I found a way so that you can disable the 64-bit reflection and then file searching works perfectly even with 32-bit scripting. IS uses Kernel32.dll and inside of the kernel is a function for disabling/enabling Wow64Redirection and you just need to prototype that function and it works:
  
  prototype Kernel32.Wow64EnableWow64FsRedirection( BOOLEAN );
  
  I have it set so that in OnBegin i call the function:
  Kernel32.Wow64EnableWow64FsRedirection( FALSE );
  And in the Afters (for modify, first, and update) i re-enable it:
  Kernel32.Wow64EnableWow64FsRedirection( TRUE );
  
  I guess IS X just doesn't have the native prototype for this function, but atleast you can prototype it yourself.
  
  
  
  there are several modification to be performed for 64 bit machine installation.
  
  1. first of all you need ISScript11.msi to be installed on the machine
  2. the program files folder, system folder and registry are different in 64bit machines
  3. in summary information stream it should be "Intel64" for Template summary
  4. for custom actions also you need to specify 64Bit
  5. please search for "Installing 64-Bit Applications" in Installshield for more informations.
  
  
  
  
  Hi All,
  I am using ISX now and planning to upgrade IS11,please let me know if IS11 supports the registry and directory level InstallScript APIs for 64 bit machines.
  
  I have tried with the evaluation copy of the IS11 .But this didn't help me much.
  I created a 64bit package(with the Intel64 bit template flag and marking the components as 64 bit) and used CopyFile() API to copy files to the System64Folder(C:\WINDOWS\System32) .But it copied the files to the SystemFolder(C:\WINDOWS\SysWOW64) .
  
  I have not tried for RegDB* APIs till now .
  
  
  
  
  Please see the InstallShield help topic "WINSYSDIR64" for information about disabling this redirection with the---
  Code:
  Disable(WOW64FSREDIRECTION);
  ---function.
  
  See also the help topic "REGDB_OPTIONS" for information about registry redirection
  
  
  Hi Robert,Thanks very much.Your suggestion worked for me.
  It seems the properties i.e "REGDB_OPTIONS","WINSYSDIR64" ,and "WOW64FSREDIRECTION" are new in InstallShield11 .
  __________________
  
  
  Please Help!
  I have a 32-bit IS8 project with COM Service component. Setup works fine, service istalled ok.
  
  Now I try to install service under WinXp64 edition. I compile component with 64 bit flag. It works. There is no changed in this component except 64Bit flag set YES. Service do not register. All registry data under HKLM\SYSTEM\ControlSet\Services\MyService missed.
  What I do wrong?
  
  If regiseter service with -Service command, service start work fine.
  
  
  
  
  
  ________________________________________
  Dear Sir,
  I need write a program which installing device driver under AMD64 OS.
  I had writen an exe to install the driver and it can work under MS-DOS mode of AMD64 OS.
  After I writen the developer7.04 program to install my device driver, it can't work .
  I used Launchappandwait to run it under developer 7.04. But it can't work? after I trace the code, I got that:
  If I put the exe on Onmoving event, it can't work.
  others, It can work.
  
  Example:
  function OnFirstUIBefore()
  begin
  Launchappandwait("c:\installK8.exe","",WAIT);//it can work.
  end
  
  function OnMoving()
  begin
  Launchappandwait("c:\installK8.exe","",WAIT);//it can't work.
  end
  
  If I change the code below:
  function OnFirstUIBefore()
  begin
  Launchappandwait("c:\installK8.exe","",WAIT);//it can work.
  OnMovingXXXX();
  end
  
  function OnMovingXXXX()
  begin
  Launchappandwait("c:\installK8.exe","",WAIT);//it can work.
  end
  
  It can work.....
  
  So, I can make sure it's OnMoving event problem.
  
  Cound any guy can give me some suggestions?
  
  PS:
  1: The EXE is a special program to install AMD K8 device driver.
  2: The EXE is a 64bit program.
  3: ISD had called it for sure and I got the windows error code = 5.(If fail)
  
  
  
  
  I got some problems about IS Professional 7.01.
  My OS is 64-bit(AMD) Win XP.
  I found IS Professional can support both the 32-bit and 64-bit versions of the Windows XP operating system according to Document ID: Q105479.
  But I still met some problems when creating setup by InstallShield Professional 7.01 on 64-bit version of the Windows XP operating system.
  
  The following are the problems I found so far.
  1.When using the function "Copyfile" to copy some files(32bit) into WINSYS, I found files were copied into the folder "SYSWOW64" under Windows, not system32 under Windows.(but checking for its log file(setup.ilg), the record is correct, i.e. it recorded IS copied the specified files into Windows\system32)
  2.All registry keys I want to write under HKLM\Software will be placed under HKLM\Software\WOW6432Node.(also, the record in the setup.ilg is correct but IS writes keys under HKLM\Software\WOW6432Node)
  3.Loading 64bit DLL compiled from DDK failed when using IS built-in function: USEDLL.
  
  A few questions I want to know are listed below , please kindly help me to answer them.
  a)I can call Rundll32.exe under Windows\SYSWOW64 to run uninstall but uninstall follows setup.ilg to delete keys and files. Is there any way to let setup.ilg record the correct full filename and registry keys(i.e. doing and recording are synchronized) without upgrading our current 32-bit files(application or DLL) into 64-bit?
  b)Suppose Is Professional 7.01 can support 64 bit WinXP, why 64-bit DLL can't be loaded?
  c)continuing to b),if the reason the 64-bit DLL can't be loaded is that setup.inx is 32-bit and then how to compile 64-bit setup.inx?
  d)if setup.inx can compile 64-bit version, does it compatible with 32-bit application?(AMD)    
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
What’s the Difference Between the “System32” and “...
如何使用Inno Setup将.sys文件安装到c:\ windows \ system32 \ drivers中?
SVN Service Wrapper for Windows
Cygwin Installation
Check .NET Version with Inno Setup
Windows Live Sync vs. Live Mesh vs. SkyDrive: Which is Right for You?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服