1.获取本地是否有.net环境
2.安装结束的时候调用ngen.exe 命令。
3.获取ngen.exe的路径。
4.获取可执行程序的安装路径。
5.执行命令
另:因为安装路径可能存在空格,所以路径要加上引号。
function IsDotNET40Detected(): boolean;
var
success: boolean;
install: cardinal;
begin
success := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'install', install);
Result := success and (install = 1);
end;
procedure CurStepChanged(CurStep:TSetupStep);
var
success:boolean;
netpath:String;
ngenpath:String;
exePath:String;
ResultCode: Integer;
path:String;
begin
if CurStep=ssPostinstall then
begin
if (IsDotNET40Detected = true) then
begin
begin
if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'InstallPath', netpath) then
begin
ngenpath:=netpath+'\ngen.exe';
path := ExpandConstant('{app}');
exePath:= ' install "'+path+'\{#MyAppExeName}"';
Exec( ngenpath, exePath, '', SW_SHOW,
ewWaitUntilTerminated, ResultCode);
end
end
end
end
end;