Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

.Net Framework Dir


4 replies to this topic

Sascha M.

Sascha M.
  • Full Members
  • 57 posts

Posted 17 March 2005 - 09:44

Hallo!
Kann mir wer sagen, wie ich den Pfad zum .Net Framework herausfinden kann?
(%windir%\Microsoft.NET\Framework\v1.1.4322). Brauche diesen, um das Programm regasm.exe ausführen zu können.

Danke
Sascha

dexter

dexter
  • Members
  • 14 posts

Posted 17 March 2005 - 13:37

Hi Sascha,

das Problem am Frameworkpfad ist, dass die Frameworkversion und der installations Pfad in zwei verschiedenen Schlüssel steckt :

Frameworkpfad : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Installroot
Frameworkversion : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v1.1

Bei der Vesion existiert kein Wert sonder muss aus dem Schlüsselnamen "v.1.1" gelesen werden.

Ich habe das so gelöst:

CODE

       szPath = "\\SOFTWARE\\Microsoft\\.NETFramework";
        //Installroot auslesen
szFrameworkPath = ExFn_RegistryAuslesen(szPath, "Installroot");  
szPath = "\\SOFTWARE\\Microsoft\\.NETFramework\\policy\\v1.1";
       //Version auslesen
szVersion = ExFn_RegistryAuslesen(szPath, "");                                    

szPath = szFrameworkPath + "v1.1." + szVersion + "\\caspol.exe";  
FRAMEWORKHOME = szFrameworkPath + "v1.1." + szVersion;


Sascha M.

Sascha M.
  • Full Members
  • 57 posts

Posted 17 March 2005 - 13:52

Danke.
Habe das Problem etwas anders gelöst, aber Deine Lösung ist eleganter.
CODE

function STRING GetRegAsmFile()
STRING svResult, svFrameworkPath;
NUMBER nvSize, nvType;
begin                                              
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\.NETFramework","InstallRoot",
       nvType,svFrameworkPath,nvSize);
FindAllFiles(svFrameworkPath,"RegAsm.exe",svResult,RESET);
FindAllFiles(svFrameworkPath,"RegAsm.exe",svResult,CANCEL);
return svResult;
end;


Mir ist gerade noch aufgefallen, dass der Code bei Dir versagen wird, wenn sich die Frameworkversion ändert. Du hast v1.1 fest in den Abfragestring geschrieben.

Gruß
Sascha

Edited by Sascha M., 17 March 2005 - 13:57.


dexter

dexter
  • Members
  • 14 posts

Posted 18 March 2005 - 14:25

Du hast recht!!!

Aber mein Setup installiert das Framework 1.1 automatisch wenn eine niedrigere oder kein Framework installiert ist. Somit kann ich garantieren das v1.1 aufjedenfall installiert ist.

Überdenken sollte man jedoch den Code spätestens diesen Sommer, wenn das Framework 2.0 rauskommt.

Gruß
Dexter

Sascha M.

Sascha M.
  • Full Members
  • 57 posts

Posted 18 March 2005 - 14:30

Richtig!

Jedoch wird es bremslich, sobald jemand das neue Framework mit einem Setup verwendet, dass noch auf Version 1.1 prüft.

Gruß
Sascha