Od Visual Studio wiersza polecenia uruchom polecenie:
Dumpbin.exe /headers c:\where\you\put\it\setup.exe
Gdzie „setup.exe” jest konfiguracja EXE stworzony przez twórcę instalatora. wyślę przykład informacji widać, że liczy się tutaj: numer wersji
OPTIONAL HEADER VALUES
10B magiC# (PE32)
...
4.00 operating system version
0.00 image version
6.00 subsystem version // <=== here!!
0 Win32 version
...
Podsystem jest ważne. VS2012 to pierwsza wersja programu Visual Studio, która zaczęła ustawiać tę wartość na 6.00, numer wersji systemu Vista. Poprzednie wersje, a także VS2012, gdy kierujesz się na .NET 4.0 lub wcześniejszy, ustawią ten numer wersji na 4.00
Jest to poza tym ważny krok naprzód i część wycofywania wsparcia dla XP. Windows wersja 6.00 i nowsze, Vista, Win7 i Win8 zwracają uwagę na ten numer. Przyjmą, że Twój program nie jest świadomy późniejszych funkcji systemu Windows i musi mieć włączonych kilka podkładek appcompat. Najbardziej godna uwagi jest appcompat w Aero, motyw komputera, który wyświetla okna z grubymi obramowaniami, które można łatwo kliknąć myszą. Windows będzie kłamał na temat tych granic, informując, że twoje okno jest mniejsze niż w rzeczywistości. Doskonałe źródło nieporozumień dla programistów, którzy starają się, aby okna ze sobą współgrały.
Konsekwencją wyświetlenia wartości 6,00 jest brak możliwości uruchomienia programu instalacyjnego w systemie XP. To jest wersja 5.02.
Tak więc najpierw upewnij się, że robisz , a nie docelową .NET wersja 4.5, nie jest dostępna dla XP. Zamiast tego użyj wersji 4.0. Jeśli nadal masz problemy, skontaktuj się ze wsparciem sprzedawcy i poproś o kontrolę nad tym numerem w pliku setup.exe, który tworzy narzędzie. Rozwiązaniem jest uruchomienie Editbin.exe z opcją/SUBSYSTEM w celu zmiany numeru.
Prawdopodobnie szukają platformy .NET 4.5, której nie ma na komputerze Win XP. –
@AlexBell Być może, lub może to być problem z architekturą. Czy ten plik .exe został skompilowany jako x86 lub x64? – Adrian
Jeśli to możliwe, ponownie przydziel swoją aplikację do korzystania z programu Net Framework 4.0 – Steve