场景:
使用installshield进行软件打包,使用批处理命令调用installshield自动执行ism文件
前提:
Installshield已安装且已激活
问题:
使用批处理命令调用IsCmdBld.exe时,制作出的安装包一直提示【the setup was created with an evaluation version of installshield 12】
分析:
可能IsCmdBld.exe无权限读取激活配置信息
解决方案:
对IsCmdBld.exe进行设置为【以管理员身份运行此程序】即可
附打包批处理代码
::
@echo off
set folder=%cd%
set dst_release=%folder%\Release
set src_release=%folder%\..\..\ProjectName\ProjectName.XXXXX\bin\Release
set reactored=%folder%\Reactored
set project_name=YYYYY
set secure=%project_name%_Secure
echo current dir: %folder%
::delete release folder
rd /s /Q %dst_release%
md %dst_release%
::copy release exe and dll
copy %src_release%\*.exe %dst_release%
copy %src_release%\*.dll %dst_release%
copy %src_release%\*.json %dst_release%
::run net reactor
"d:\Program Files (x86)\Eziriz\.NET Reactor\dotNET_Reactor.Console.exe" -project "%folder%\%project_name%.nrproj"
::copy reactored file together
rd /s /Q %reactored%
md %reactored%
copy %dst_release%\%secure%\*.* %reactored%
rd /s /Q %dst_release%\%secure%
::copy c++ dlls to reactored folder
del /q %dst_release%\%project_name%.dll
del /q %dst_release%\ProjectName.Tools.dll
del /q %dst_release%\*.json
copy %dst_release%\*.* %reactored%
rd /s /Q %dst_release%
::execute installshield
set InstallProject=%folder%\%project_name%.ism
set IShieldPath="C:\Program Files (x86)\Macrovision\IS12\System"
set ProjectName=SINGLE_EXE_IMAGE
%IShieldPath%\ISCmdBld.exe -p "%InstallProject%" -r "%ProjectName%"
::copy setup.exe out
set SetupexeFoler=%folder%\%project_name%\PROJECT_ASSISTANT\%ProjectName%\DiskImages\DISK1
copy %SetupexeFoler%\setup.exe %folder%\%project_name%_setup.exe
rd /s /Q %folder%\%project_name%
pause