2014-10-09 16 views
7

Ho scritto un'applicazione Console che il client sta tentando di eseguirlo sulla loro macchina Windows Server 2003 R2 machine e ottengono il messaggio di errore.Application.exe non è un errore dell'applicazione Win32 valido

Se vado a Build -> Configuration Responsabile tutti i miei progetti sono impostati su piattaforma di "Any CPU" e configurazione di

"Release" 

Che altro avrei potuto perdere? Non vogliono eseguire effettivamente l'applicazione della console facendo doppio clic su di esso, vogliono darlo alle attività di pianificazione di Windows in modo che possa prenderlo e farlo in determinati orari

+1

Quale versione di .NET utilizza come target? E quale versione è installata sul server? –

+0

@MarcGravell Grazie Mark, stavo pensando alla stessa cosa, io "ero" per impostazione predefinita su 4.5, quindi ora l'ho compilato su 4.0 invece di contattare il client e vedere quale versione sono? What è un buon modo per assicurarsi di quale versione sono? Chiedete loro di scattare una schermata di .NET framework installato dal pannello di controllo? – ConfusedSleepyDeveloper

+0

@ConfusedSleepyDeveloper È possibile fornire al cliente un collegamento al [programma di installazione di v 4.0] (http://www.microsoft.com/en-us/download/details.aspx?id=17851) insieme al programma. Un approccio migliore consiste nel creare un pacchetto di distribuzione con ClickOnce o qualcosa come InstallShield. Il pacchetto controllerà i prerequisiti e li installerà se necessario. –

risposta

25

A partire da .NET 4.5, il il compilatore genera un file EXE contrassegnato per essere compatibile solo con Windows versione 6.0 e successive. Vista e fino. Un tale eseguibile non funzionerà immediatamente se avviato su XP e Server 2003, sono versioni di Windows 5.0. Si ottiene questo errore prima di, si può dire che .NET 4.5 non è installato sulla macchina.

Il numero deve essere di destinazione .NET 4.0 o inferiore. Lo stesso requisito su qualsiasi DLL di cui si ha una dipendenza, compresi quelli non gestiti. Maggiori informazioni su questo in this post.

+0

Non sapeva di Win2003 e della sua versione. Grazie. Spero che le mie altre terze parti siano OK o che io abbia "hosed" Ho installato EPPLUS da NUGET – ConfusedSleepyDeveloper

+0

Ok una domanda Hans! Mi hanno mandato la schermata del loro .NET installato e sono su .NET 4.0 "Client Profile" .. .Io l'ho compilato su "4.0" ora ... quindi è così buono o comunque dovrei dire loro di installare full .NET 4.0? – ConfusedSleepyDeveloper

+0

Possiamo essere certi solo se si compila anche con il profilo client 4.0 selezionato come obiettivo quadro Nessun problema se si ottiene una compilazione pulita, in questo momento verrà visualizzata una richiesta per installare la versione completa all'avvio del programma. Forse non si dovrebbe risolvere il problema :) –