Cześć, używam VisualStudio 2019, piszę w języku c# i używam windows forms. Jak przerobić napisaną aplikację tak, aby uruchamiała się na 32 bitowym systemie?
Pozdrawiam.
- Rejestracja:około 4 lata
- Ostatnio:5 miesięcy
- Postów:39
- Rejestracja:około 4 lata
- Ostatnio:5 miesięcy
- Postów:39
Dziwne, program działa na Windows 10 64 bit, u kolegi z nieznanym mi systemem działa, a na Windows 10 32 bit wyskakuje komunikat:
W ustawieniach wybrane automatycznie było AnyCPU:
- Rejestracja:ponad 10 lat
- Ostatnio:około rok
- Postów:115
Jeżeli budujesz aplikację w systemie 64 bitowym, to wynikiem kompilacji będzie 64 bitowy program, który nie uruchomi się na 32 bitowym procesorze.
Musisz zmienić "Cel platformy" na x86, wtedy plik wynikowy uruchomi się na Windows 10 32bit.
- Rejestracja:około 22 lata
- Ostatnio:30 dni
- Postów:5042
Jeśli mowa o desktopie, to...
Na AnyCPU kompiluje się biblioteki, które nie mają zależności od innych bibliotek o określonej bitowości. Projekt exe powinieneś budować pod konkretne platformy, czyli x86 i x64, i co tam jeszcze masz. Projekty testów, lepiej kompilować na x86 (na tej platformie domyślnie są obsługiwane testy).
AnyCPU powoduje to, że biblioteka tak skompilowana pracuje w takiej bitowości, jak aplikacja ją używająca.
- Rejestracja:prawie 7 lat
- Ostatnio:4 miesiące
- Postów:273
Nie bardzo rozumiem. Mowa jest o powtórnej kompilacji czy przerobieniu już istniejącej aplikacji ?
- Rejestracja:około 22 lata
- Ostatnio:30 dni
- Postów:5042
@Zimny Krawiec: a co ma do tego C++? W C# też możesz napisać taki kod, który spowoduje Ci problemy przy innej bitowości :/

- Rejestracja:ponad 21 lat
- Ostatnio:około 14 godzin
Juhas napisał(a):
Jeśli mowa o desktopie, to...
Na AnyCPU kompiluje się biblioteki, które nie mają zależności od innych bibliotek o określonej bitowości. Projekt exe powinieneś budować pod konkretne platformy, czyli x86 i x64,
Jeżeli w dotnetowym programie nie używamy żadnych bibliotek natywnych, to jaki sens jest używać czegokolwiek innego niż AnyCPU. Przecież to najłatwiejszy sposób by uniezależnić się od platformy.
- Rejestracja:około 22 lata
- Ostatnio:30 dni
- Postów:5042
Tu jest ciekawie to opisane: https://docs.microsoft.com/en-us/windows/msix/package/device-architecture#x86 głównie ten akapit:
Choosing x86 is generally the safest configuration for an app package since it will run on nearly every device. On some devices, an app package with the x86 configuration won't run, such as the Xbox or some IoT Core devices. However, for a PC, an x86 package is the safest choice and has the largest reach for device deployment. A substantial portion of Windows 10 devices continue to run the x86 version of Windows.
- Rejestracja:około 4 lata
- Ostatnio:5 miesięcy
- Postów:39
Cześć, przepraszam za długi czas bez odpowiedzi.
Niestety urwał się kontakt z osobą, która miała Windows 10 32 bit. Nikogo innego już nie kojarzę z takim systemem, lecz zaciekawiła mnie kwestia uruchomienia programu na starym Windows XP x32 z zainstalowanym net 3,5 oraz net 4,0. Niestety cały czas wyskakuje komunikat, że aplikacja nie jest poprawną aplikacją win32.
Użyłem następujących bibliotek:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Diagnostics;
using System.IO;
using System.Threading;

- Rejestracja:około 7 lat
- Ostatnio:prawie 4 lata
- Postów:227
Stare windowsy miały net frameworka, a net core jest stosunkowo nowe, powinieneś zmienić na net framework 3.5 i powinno działać.
- Rejestracja:około 4 lata
- Ostatnio:5 miesięcy
- Postów:39
Dzięki za wskazówki :) Niestety nie miałem na liście do wyboru Net Framework 3,5. Po kliknięciu w zainstaluj inne platformy przekierowuje mnie na stronę pobierania. Pobrałem Net Framework 3,5 SP1 runtime i plik instalacyjny nie chce się uruchomić.
Znalazłem jeszcze wskazówkę, aby uruchomić Visual Studio Installer -> Pojedyncze składniki -> w sekcji .NET zaznaczyć Narzędzia programistyczne programu . NET Framework 3.5.
Niestety nie mam dodatkowej opcji do wyboru oprócz .NET Core.
- Rejestracja:ponad 7 lat
- Ostatnio:4 miesiące
- Postów:1065
Musosz chyba zrobic nowy projekt windows framework i wtedy będziesz miał wersję 4.x
- Rejestracja:około 4 lata
- Ostatnio:5 miesięcy
- Postów:39
Dzięki! Po utworzeniu nowego projektu z .Net Framework w nawiasie wszystko działa na Xp x32 :)