RISOLTO Creazione del setup di installazione dal progetto vuoto CLR in C++

Stato
Discussione chiusa ad ulteriori risposte.

xDeluxers

Utente Attivo
271
25
CPU
AMD Ryzen 7 2700x
Dissipatore
AMD Wraith Prism
Scheda Madre
MSI B450 Tomahawk Max
HDD
Seagate Barracuda 1TB/SSD SanDisk Plus 480GB
RAM
Corsair Vengeance RGB Pro 16GB 3200Mhz
GPU
NVIDIA GeForce GTX 1660 Ti
Monitor
ASUS TUF Gaming VG249Q
PSU
Seasonic Focus+ 550W
Case
NZXT H510 Elite
Periferiche
Corsair K70 MK.2/ Logitech G502 Hero
Net
FTTC 200Mb
OS
Windows 10 Pro
Ho creato un'applicazione desktop in C++ utilizzando "CLR progetto vuoto (.NET Framework)", ora vorrei creare il setup di installazione per utilizzare l'applicazione su un altro pc. Come posso fare?

Ho provato a creare un "Setup project" ma non appena clicco su build ottengo questi errori:
image.png
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Aspetta, per chiarire: il tuo progetto è in C++ o in C#?
Perchè per il .Net Framework usi C#, non C++ (e C# non è appunto nativo, al contrario di C++).

Verifica di non aver sbagliato questo intanto.

Il secondo errore è il target che hai sul progetto: avrai x86 ma le librerie che vengono rilevate come dipendenze sono di x64. Quindi non può funzionare, devi avere il medesimo target.
 

xDeluxers

Utente Attivo
271
25
CPU
AMD Ryzen 7 2700x
Dissipatore
AMD Wraith Prism
Scheda Madre
MSI B450 Tomahawk Max
HDD
Seagate Barracuda 1TB/SSD SanDisk Plus 480GB
RAM
Corsair Vengeance RGB Pro 16GB 3200Mhz
GPU
NVIDIA GeForce GTX 1660 Ti
Monitor
ASUS TUF Gaming VG249Q
PSU
Seasonic Focus+ 550W
Case
NZXT H510 Elite
Periferiche
Corsair K70 MK.2/ Logitech G502 Hero
Net
FTTC 200Mb
OS
Windows 10 Pro
Aspetta, per chiarire: il tuo progetto è in C++ o in C#?
Perchè per il .Net Framework usi C#, non C++ (e C# non è appunto nativo, al contrario di C++).

Verifica di non aver sbagliato questo intanto.

Il secondo errore è il target che hai sul progetto: avrai x86 ma le librerie che vengono rilevate come dipendenze sono di x64. Quindi non può funzionare, devi avere il medesimo target.
Quindi non c’è un modo per crearlo in C++? Anche creando un progetto diverso?
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Dovresti spiegare che stai facendo: che c'è in quel "PasswordGenerator"? Riporta qui il codice utilizzando il tag CODE, così vediamo.

Se è in C++ dovrai compilare con MSVC (visto che usi VisualStudio), e quindi con cl.exe. Non puoi mischiare le due cose.
Hai però modo qualora servisse di richiamare del codice nativo tramite C#, questo si.

Però devi prima spiegarci cosa stai facendo e cosa vuoi ottenere.
 

xDeluxers

Utente Attivo
271
25
CPU
AMD Ryzen 7 2700x
Dissipatore
AMD Wraith Prism
Scheda Madre
MSI B450 Tomahawk Max
HDD
Seagate Barracuda 1TB/SSD SanDisk Plus 480GB
RAM
Corsair Vengeance RGB Pro 16GB 3200Mhz
GPU
NVIDIA GeForce GTX 1660 Ti
Monitor
ASUS TUF Gaming VG249Q
PSU
Seasonic Focus+ 550W
Case
NZXT H510 Elite
Periferiche
Corsair K70 MK.2/ Logitech G502 Hero
Net
FTTC 200Mb
OS
Windows 10 Pro
Dovresti spiegare che stai facendo: che c'è in quel "PasswordGenerator"? Riporta qui il codice utilizzando il tag CODE, così vediamo.

Se è in C++ dovrai compilare con MSVC (visto che usi VisualStudio), e quindi con cl.exe. Non puoi mischiare le due cose.
Hai però modo qualora servisse di richiamare del codice nativo tramite C#, questo si.

Però devi prima spiegarci cosa stai facendo e cosa vuoi ottenere.
Ho creato il progetto allegato nell’immagine e ho scritto il programma in C++. Questi programma richiede in input un numero (da inserire nella textbox) e una volta cliccato il pulsante genera una password sicura. Appena torno a casa invio il codice. 9F92197A-981D-41CB-9315-70255217E621.jpeg
 
Ultima modifica:

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Va bene, attendiamo anche il codice magari. 😉

Comunque hai selezionato il template sbagliato, devi usare quello relativo a un progetto in C++. Ora non ho VS sotto mano, sono su macchina Linux, altrimenti ti farei uno screen.

Ciò che dovrai selezionare comunque è più o meno qualcosa tipo: Nuovo progetto > C++ > Piattaforma Windows > Applicazione Console.

Puoi anche dare un occhio qui https://learn.microsoft.com/en-us/c...ting-a-standard-cpp-program-cpp?view=msvc-170
 

xDeluxers

Utente Attivo
271
25
CPU
AMD Ryzen 7 2700x
Dissipatore
AMD Wraith Prism
Scheda Madre
MSI B450 Tomahawk Max
HDD
Seagate Barracuda 1TB/SSD SanDisk Plus 480GB
RAM
Corsair Vengeance RGB Pro 16GB 3200Mhz
GPU
NVIDIA GeForce GTX 1660 Ti
Monitor
ASUS TUF Gaming VG249Q
PSU
Seasonic Focus+ 550W
Case
NZXT H510 Elite
Periferiche
Corsair K70 MK.2/ Logitech G502 Hero
Net
FTTC 200Mb
OS
Windows 10 Pro
Va bene, attendiamo anche il codice magari. 😉

Comunque hai selezionato il template sbagliato, devi usare quello relativo a un progetto in C++. Ora non ho VS sotto mano, sono su macchina Linux, altrimenti ti farei uno screen.

Ciò che dovrai selezionare comunque è più o meno qualcosa tipo: Nuovo progetto > C++ > Piattaforma Windows > Applicazione Console.

Puoi anche dare un occhio qui https://learn.microsoft.com/en-us/c...ting-a-standard-cpp-program-cpp?view=msvc-170
Se metto Applicazione Console non posso creare la parte grafica, giusto?
Ti mando il codice e l'immagine per farti capire cosa sto cercando di fare.

Questo è il file "MyForm.cpp"
C++:
#include "MyForm.h"


using namespace System;
using namespace System::Windows::Forms;
[STAThread]

void main(array<String^>^ args)
{
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    PasswordGenerator::MyForm form;
    Application::Run(% form);
}

Ti allego anche le immagini:

Screenshot 2023-03-10 170555.png
 
Ultima modifica:

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Se metto Applicazione Console non posso creare la parte grafica, giusto?
Esatto, pensavo non fosse grafica.
Ok, quindi ricapitolando stai facendo un'applicazione Windows Form. Allora la voce che hai selezionato li sopra è corretta, progetto CLR vuoto.

Verifica gli errori che si vedono li sotto in quella finestra.

Poi in cima, dove hai come target X64, prova a mettere x86. Secondo me stai compilando per x64 con le librerie x86; oppure devi smanettare nelle impostazioni e capire perchè hai come target le lib x86 invece che x64. Questo è sicuro il problema principale che emerge dal primo screen che hai postato.
 

xDeluxers

Utente Attivo
271
25
CPU
AMD Ryzen 7 2700x
Dissipatore
AMD Wraith Prism
Scheda Madre
MSI B450 Tomahawk Max
HDD
Seagate Barracuda 1TB/SSD SanDisk Plus 480GB
RAM
Corsair Vengeance RGB Pro 16GB 3200Mhz
GPU
NVIDIA GeForce GTX 1660 Ti
Monitor
ASUS TUF Gaming VG249Q
PSU
Seasonic Focus+ 550W
Case
NZXT H510 Elite
Periferiche
Corsair K70 MK.2/ Logitech G502 Hero
Net
FTTC 200Mb
OS
Windows 10 Pro
Esatto, pensavo non fosse grafica.
Ok, quindi ricapitolando stai facendo un'applicazione Windows Form. Allora la voce che hai selezionato li sopra è corretta, progetto CLR vuoto.

Verifica gli errori che si vedono li sotto in quella finestra.

Poi in cima, dove hai come target X64, prova a mettere x86. Secondo me stai compilando per x64 con le librerie x86; oppure devi smanettare nelle impostazioni e capire perchè hai come target le lib x86 invece che x64. Questo è sicuro il problema principale che emerge dal primo screen che hai postato.
Adesso provo. Comunque per creare il setup sto seguendo questo video, però ho messo "Primary Output" anziché mettere "Published Items" dato che quest'ultimo non mi compare, è corretto?

Edit: Quando creo il setup, clicco su "Add" > "Project Output" > "Primary Output", mi compare questa finestra, devo fare qualcosa o la devo ignorare?

Screenshot 2023-03-10 180811.png
 
Ultima modifica:

xDeluxers

Utente Attivo
271
25
CPU
AMD Ryzen 7 2700x
Dissipatore
AMD Wraith Prism
Scheda Madre
MSI B450 Tomahawk Max
HDD
Seagate Barracuda 1TB/SSD SanDisk Plus 480GB
RAM
Corsair Vengeance RGB Pro 16GB 3200Mhz
GPU
NVIDIA GeForce GTX 1660 Ti
Monitor
ASUS TUF Gaming VG249Q
PSU
Seasonic Focus+ 550W
Case
NZXT H510 Elite
Periferiche
Corsair K70 MK.2/ Logitech G502 Hero
Net
FTTC 200Mb
OS
Windows 10 Pro
Sono riuscito finalmente a creare il setup senza problemi! Ho aperto il file "PasswordGeneratorSetup.vdproj" e ho modificato "TargetPlatform" = "3:0"" a "3:1". Adesso ho un altro problema, quando installo il programma e lo apro su un altro pc, mi compare questo errore, come risolvo?
Screenshot 2023-03-10 183424.png
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Sono riuscito finalmente a creare il setup senza problemi! Ho aperto il file "PasswordGeneratorSetup.vdproj" e ho modificato "TargetPlatform" = "3:0"" a "3:1". Adesso ho un altro problema, quando installo il programma e lo apro su un altro pc, mi compare questo errore, come risolvo?
Ti serve il runtime di Microsoft. Scarica da qui in base al target che hai (x86 o x64) https://learn.microsoft.com/it-it/cpp/windows/latest-supported-vc-redist?view=msvc-170
 

xDeluxers

Utente Attivo
271
25
CPU
AMD Ryzen 7 2700x
Dissipatore
AMD Wraith Prism
Scheda Madre
MSI B450 Tomahawk Max
HDD
Seagate Barracuda 1TB/SSD SanDisk Plus 480GB
RAM
Corsair Vengeance RGB Pro 16GB 3200Mhz
GPU
NVIDIA GeForce GTX 1660 Ti
Monitor
ASUS TUF Gaming VG249Q
PSU
Seasonic Focus+ 550W
Case
NZXT H510 Elite
Periferiche
Corsair K70 MK.2/ Logitech G502 Hero
Net
FTTC 200Mb
OS
Windows 10 Pro
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!