Ein Open-Source-Programm bricht mit der Fehlermeldung ab, dass die .NET-Version 1.1 nicht installiert ist. Tatsächlich ist zwar .NET installiert, aber in der Version 2.0. Jetzt hab ich mich C# und .NET keine Erfahrung. Reicht es, mir Visual Studio (von MSDNAA) zu ziehen und das Programm neu zu kompilieren?
Hallo erstmal
Einfach .NET 1.1 zu installieren sollte genügen: http://www.microsoft.com/downloads/details.aspx?disp… (kommt mit höheren Versionen übrigens nicht ins Gehege )
mfg M.L.
Hallo!
Üblicherweise funktionieren .NET 1.1-Anwendungen auch problemlos mit .NET 2.0, es sei denn, es wird explizit die Frameworkversion geprüft.
Über einen Eintrag in der *.exe.config-Datei (supportedRuntime) kann man festlegen, welche Frameworkversionen unterstützt werden.
Schau mal hier: http://msdn.microsoft.com/en-us/library/w4atty68.aspx
Gruß,
Martin
Hallo Martin,
wo muss ich denn dieses application configuration file erstellen? Im Ordner des Programms hat es leider keinen Nutzen gebraucht. Es gibt dort zwei ausführbare Dateien, für jede hatte ich eine solche Datei erstellt mit dem Inhalt
<?xml version ="1.1.4322"?>
Orientiert hatte ich mich der Vorlage auf http://msdn.microsoft.com/en-us/library/9w519wzk%28V…. Leider hat sich nichts geändert.
Zu den zwei ausführbaren Dateien (Setup.Exe und TeaTimerInstaller.msi) gehört noch eine dritte, die Setup.Ini. Die sieht sehr interessant aus:
[MSILoader]
MSIFileName=TeaTimerInstaller.msi
[FXSection]
SupportedRuntimes=1.1.4322
InstallUrl=http://go.microsoft.com/fwlink/?LinkId=9832
Message=1.1.4322
UseDefaultMessage=1
Die 1.1-Version bei SupportRuntimes habe ich in 2.0.50727 überschrieben. Das hat leider auch nichts gebracht.
Wenn möglich, möchte ich die alte 1.1-Version von .NET nicht installieren.
Hi nochmal!
Das Application Configuration File muss im gleichen Verzeichnis sein wie die .exe-Datei und wirkt nur bei .NET-Executables.
Die erwähnte .msi-Datei lässt sich zwar auch per Doppelklick „starten“, in Wahrheit ist es aber eine Datenbank für den Windows Installer, in der die Installation eines Programms abgelegt ist.
Solch eine msi-Datei lässt sich durch eine .exe.config-Datei nicht beeinflussen.
Die Setup.exe ist nur ein Bootstrapper für die msi-Datei, der überprüft, ob der Windows Installer in der benötigten Version installiert ist. In aller Regel startet die Setup.exe einfach nur den Windows Installer mit der jeweiligen msi-Datei.
Du könntest probieren, die ini-Datei mal umzubenennen, so dass sie nicht gefunden wird. U.U. kann so eine Überprüfung auf .NET 1.1 umgangen werden.
Kann aber gut sein, dass in der msi-Datei selbst auch noch eine Überprüfung auf genau .NET 1.1 (und eben nicht „oder höher“) drin ist, dann könnte man dies höchstens durch Patchen der MSI-Datei ändern, aber das ist für Laien nicht machbar.
Gruß,
Martin
Hallo Martin, die Setup.exe prüft die Existenz der Setup.ini - ohne geht es leider nicht.
Die msi-Datei kann man übrigens z. B. mit 7-zip öffnen. Leider sind die Dateien aber nicht direkt lesbar, auch die Dateinamen sind modifiziert. Sonst hätte ich das Programm schon versucht manuell zu extrahieren.
Ok, dann schmeiss’ Dir halt .NET 1.1 drauf und gut is’.
Du kannst ja danach immer noch probieren, .NET 1.1 nach erfolgter Installation zu deinstallieren, um das Programm dazu zu zwingen, mit einer höheren Framework Version zu laufen.
Gruß,
Martin