aplikacja działająca na starych i nowych wersjach Windows

0

Mam 3 komputery z win 98, win xp (.net version 2) i 7. Chciałbym stworzyć taki program konsolowy, który uruchomiłby się na wszystkich trzech powyższych systemach, bez ich aktualizacji.

Moje próby:

  1. w C# (VS 2010 .NET 4) na XP zgłasza błąd aby zaktualizować .NET do wersji 4, na 98 już nie próbowałem. Czy jest możliwość takiej kompilacji programu aby mógł uruchamiać się "wstecz", ze starymi wersjami .NET?

  2. w C++ (V C++ 2010), początkowo na XP nie chciał się uruchomić bo brakowało mu biblioteki Visual C++ Redistributable ..., ale jak zmieniłem opcję dubug Release -> z "Multithreading ..." to na Xp program się uruchomił, na 98 zapewne też ruszy. Sprawdzę.

1

W mojej ocenie powinieneś zainstalować pakiet redystrybucyjny Microsoft .Net Framework na stacjach roboczych na których docelowo ma działać aplikacja. Zawarte są w nim komponenty z których korzysta zarówno narzędzie programisty jak i programy autorskie.

Jak uczy Microsoft:
"Pakiet redystrybucyjny programu Microsoft .NET Framework instaluje aparat plików wykonywalnych .NET Framework i powiązane z nim pliki wymagane do uruchamiania i projektowania aplikacji przeznaczonych dla programu .NET Framework ."

Bo tak na zdrowy rozum. Jak twój program ma korzystać z bibliotek standardowych (chyba że nie korzysta ;-)) kiedy nie ma ich fizycznie na stacji roboczej.

Chyba że pokusisz się o ręczne dołączanie pełnej biblioteki z przedefiniowaniem wszystkiego na twoje, ale szczerze to jeszcze takiego rozwiązania nie widziałem (choć człowiek całe życie się uczy :-))

1

Może się mylę, ale moim zdaniem to zależy co dokładnie robi ten program i z czego korzysta aby to robić. Jeżeli np. używasz w środku LINQ, które weszło w .NET Framework 3.5 no to nie ma możliwości żeby to zadziałało na komputerze bez tego frameworka. dlatego trzeba by ten program napisać tak, aby korzystał jedynie funkcji dostępnych w najniższym zainstalowanym frameworku. Ale tak jak mówię - to jest to co mi się wydaje, może ktoś mnie poprawi.

1

ne0 masz rację. jeżeli chcesz utworzyć program konsolowy, który będzie działał na wszystkich opisanych komputerach musisz wybrać prace z .NET 2.0. Oczywiście program musi być skompilowany z użyciem .Net 2.0.

0

Dzięki za odpowiedzi. @ne0 z tego co pamiętam to 98 pozwala zainstalować .NET Framework do wersji 2. To jest prosty programik konsolowy bez pobierania jakichkolwiek danych, prosty kalkulatorek. Chciałem sprawdzić lub/i się dowiedzieć się, czy jest się wstanie napisać w C# coś, co będzie chodziło na starych i nowych Windowsach, tak jak to ma miejsce w C++.

2
  1. w C++ (V C++ 2010), początkowo na XP nie chciał się uruchomić bo brakowało mu biblioteki Visual C++ Redistributable ..., ale jak zmieniłem opcję dubug Release -> z "Multithreading ..." to na Xp program się uruchomił, na 98 zapewne też ruszy. Sprawdzę.

Nie ruszy. Ostatnia wersja Visual C++ która generuje exeki działające na Windows 98 to VS2005.

Jeśli nie chcesz instalować starej wersji środowiska, to pod 2010 jedynym wyjściem jest C#/VB i .Net 2.0.
Sprawdzane, działa.

Wersję Frameworka ustawiasz we właściwościach projektu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1