Mam aplikację, muszę sprawdzić, czy .NET FW 3.5 już jest zainstalowany. Jeśli jest już zainstalowany, chcę otworzyć skrzynkę z komunikatami, która prosi użytkownika o pobranie jej ze strony Microsoftu i zatrzymanie instalacji..NET Framework jako warunek wstępny instalacji z Inno-Setup
Znalazłem następujący kod. Czy możesz mi powiedzieć proszę:
a) Skąd mam wywołać tę funkcję? b) Czy mogę sprawdzić, czy .NET FW 3.5 lub nowsza wersja jest już zainstalowana? na przykład Jeśli zainstalowany jest FW 4.0 - czy konieczne jest zainstalowanie 3.5?
Dziękuję
function IsDotNET35Detected(): Boolean;
var
ErrorCode: Integer;
netFrameWorkInstalled : Boolean;
isInstalled: Cardinal;
begin
result := true;
// Check for the .Net 3.5 framework
isInstalled := 0;
netFrameworkInstalled := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', 'Install', isInstalled);
if ((netFrameworkInstalled) and (isInstalled <> 1)) then netFrameworkInstalled := false;
if netFrameworkInstalled = false then
begin
if (MsgBox(ExpandConstant('{cm:dotnetmissing}'), mbConfirmation, MB_YESNO) = idYes) then
begin
ShellExec('open',
'http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=en',
'','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;
result := false;
end;
end;
Wiem, że nie odpowiedziałem na żadne z Twoich pytań. Niedługo wrócę z aktualizacją ... Ale muszę już iść ... – TLama
Dziękuję. Spróbuję tego. A co z wersjami wyższymi (> 3.5)? Czy to prawda, że jeśli zainstalowany jest FW 4.0, pokrywa on potrzeby 3.5? –
To zależy od twojej aplikacji, jak to zostało powiedziane w ["tym artykule"] (http://msdn.microsoft.com/en-us/library/ff602939.aspx). Ale nikt wyraźnie nie powiedział, że jeśli zainstalujesz np. .NET 4.5 na komputerze bez zainstalowanego .NET Framework 3.5, że będziesz mógł zastosować ["ten rodzaj"] wykrywania (http://support.microsoft.com/kb/318785/en-us). – TLama