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
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.
.Net Framework Dir
Started by
Sascha M.
, Mar 17 2005 09:44
4 replies to this topic
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:
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; |
Posted 17 March 2005 - 13:52
Danke.
Habe das Problem etwas anders gelöst, aber Deine Lösung ist eleganter.
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.
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
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
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
Jedoch wird es bremslich, sobald jemand das neue Framework mit einem Setup verwendet, dass noch auf Version 1.1 prüft.
Gruß
Sascha