1
我有一个小的Inno脚本来检查注册表您当前.NET安装,并返回一个布尔...检查XML的版本使用Inno Setup的安装程序
[Code]
function IsDotNetDetected(version: string; service: cardinal): Boolean;
// Indicates whether the specified version and service pack of the .NET Framework is installed.
//
// version -- Specify one of these strings for the required .NET Framework version:
// 'v1.1.4322' .NET Framework 1.1
// 'v2.0.50727' .NET Framework 2.0
// 'v3.0' .NET Framework 3.0
// 'v3.5' .NET Framework 3.5
// 'v4\Client' .NET Framework 4.0 Client Profile
// 'v4\Full' .NET Framework 4.0 Full Installation
//
// service -- Specify any non-negative integer for the required service pack level:
// 0 No service packs required
// 1, 2, etc. Service pack 1, 2, etc. required
var
key: string;
install, serviceCount: cardinal;
success: boolean;
begin
key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
// .NET 3.0 uses value InstallSuccess in subkey Setup
if Pos('v3.0', version) = 1 then begin
success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
end else begin
success := RegQueryDWordValue(HKLM, key, 'Install', install);
end;
// .NET 4.0 uses value Servicing instead of SP
if Pos('v4', version) = 1 then begin
success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
end else begin
success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
end;
result := success and (install = 1) and (serviceCount >= service);
end;
function CheckDotNet(): Boolean;
begin
if not IsDotNetDetected('v4\Full', 0) then begin
//MsgBox('{#gsAppName} requires Microsoft .NET Framework 4.0 Full.'#13#13
// 'Please use Windows Update to install this version,'#13
// 'and then re-run the {#gsAppName} setup program.', mbInformation, MB_OK);
result := false;
end else
result := true;
end;
我想看看是否有可能做同样的事情,但在一个XML文件。我有位于'C:\ test_folder \ test.xml'的以下XML文件。
<Registry>
<HKEY_LOCAL_MACHINE>
<SOFTWARE>
<KOFAX>
<CONDOR Value="0" Type="integer">
<VERSION Value="V4.10.039"/>
任何人都知道如何检查该版本并检查它是否高于4.0?使用.NET函数我简单地调用CheckDotNet(),它然后依次调用IsDotNetDetected(“V4 \满”,0)我想要做同样的事情与此XML文件。我想要的功能检查,如果我的版本“V4.10.039”是大于“4.0”,通过调用像IsMySoftwareDetected(“4.0”)。
的[CodeAutomation.iss示例](https://开头github.com/jrsoftware/issrc/blob/master/Examples/CodeAutomation.iss)演示了使用创新科技的MSXML库。 – Deanna 2012-02-27 00:01:14