Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Problema di build su Vs.2010 con windows 7 64 bit
martedì 03 agosto 2010 - 13.59
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 3.5
|
Windows 7
|
Visual Studio 2010
|
MySQL 5.1
Lanello
Profilo
| Senior Member
218
messaggi | Data Invio:
mar 3 ago 2010 - 13:59
Ciao a tutti,
premetto che il progetto in questione è nato in .Net framework 2 con Vb.2005 e dopo essere passato al 2008 adesso lo sto cercando di migrare a 2010, sono un'attimo in difficoltà in quanto il tutto funziona su una macchina con windows 7 professional 64bit ma con il visual studio 2008; il progetto ha dei componenti che sono in un'altro progetto all'interno della stessa soluzione ed ovviamente c'è il riferimento fra i due.
dopo aver installato visual studio 2010 ho importato il progetto e corretto alcuni warning che mi apparivano, il progetto adesso prima di fare il build è pulito e non presenta ne Errors (ovviamente), nè tantomeno Warnings.
se faccio il build del progetto che contiene i componenti il risultato è un bel "Build succeded", quando vado a fare il build della soluzione, mi appare un'errore nel caricamento della libreria .dll del componente che riporta il messaggio:
"Tentativo di caricare un programma con un formato non corretto. Riga xxx, posizione y"
nella finestra "Error List" il problema è che l'errore punta ad un file .resx delle risorse della form principale alla determinata riga xxx e posizione y, facendo doppio clic sull'errore vengo mandato alla riga e posizione di questo file xml che riporta le risorse (testo, grafica, audio, ecc...) del form contenuto nel progetto principale!
in poche parole, il punto dove vengo mandato facendo doppio clic sull'errore non c'entra proprio nulla con la dll che dice di non poter caricare, visto anche il fatto che NESSUNO dei componenti di quella dll è utilizzato in quel form.
sto uscendo di testa, ho provato anche a formattare il pc casomai fosse stata una incompatibilità tra l'ambiente 2008 ed il 2010 installati in contemporanea... ma nessun cambiamento.
ps: l'ho già scritto ma lo ripeto, sia il progetto principale che il progetto con i componenti personalizzati che la soluzione sono impostati per essere compilati in x86 e non a 64bit.
help
----------------------------------------------------------------------
http://www.flashinlabs.biz
o .com o .it fate voi :P
kataklisma
Profilo
| Senior Member
394
messaggi | Data Invio:
mar 3 ago 2010 - 15:23
>Ciao a tutti,
Ciao!
>ps: l'ho già scritto ma lo ripeto, sia il progetto principale
>che il progetto con i componenti personalizzati che la soluzione
>sono impostati per essere compilati in x86 e non a 64bit.
Dovresti provare a settare il platform target dei progetti a cui si riferisce l'errore ad "Any Cpu".
Prova e fammi sapere....
Ciao!
------------------------------------------
Ignazio Catanzaro
http://blogs.dotnethell.it/swdev/
Revan1985
Profilo
| Junior Member
53
messaggi | Data Invio:
mer 4 ago 2010 - 09:36
sei sicuro che la dll che tenti di caricare sia x86?
mi era capitata una cosa simile con una x64 in un programma x86 (ci ho perso 1 giornata di lavoro per quel problema idiota)
Non c'è emozione; c'è pace.
Non c'è ignoranza; c'è conoscenza.
Non c'è inquietudine; c'è serenità.
Non c'è caos; c'è armonia.
Non c'è morte; c'è la Forza.
Lanello
Profilo
| Senior Member
218
messaggi | Data Invio:
ven 6 ago 2010 - 13:24
Allora, abbiamo risolto il problema e
abbiamo scoperto che è causato da un BUG del VS2010 presente già dalla versione Beta2, ci sono dei workaround ma nessuna patch per correggere il problema.
è anche vero che il caso è particolare, ma secondo me neanche troppo...
sembra succedere SOLO se si fa il porting di un progetto VS2008 a 32 bit su VS2010 su una macchina con windows 7 64 bit, il bug consiste che se anche tutti i progetti della soluzione sono impostati (causa dipendenza da librerie 32bit) in compilazione x86, il file di compilazione delle risorse .resx tale ResGen.exe effettui SEMPRE la compilazione a 64 bit, ed alla fine quando la compilazione della soluzione va a generare l'exe risultante non riesce ad inglobare nel pacchetto finale il file a 64 bit visto che tutti i progetti sono a 32.
Praticamente, per sistemare questo problema:
avviare “Visual Studio Command Prompt” ed eseguire quanto segue:
cd “%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\Bin”
Corflags /32Bit+ /Force ResGen.exe
Poi aggiungere, in ogni file .proj presente nella soluzione (quindi per ogni progetto) quanto segue dopo <propertygroup>
<resgentoolarchitecture>Managed32Bit</resgentoolarchitecture>
Nota: Nel caso sia necessario compilare progetti a 64bit è necessario rimuovere questo fix.
[soluzione tratta da Workaround 2 del seguente url:]
http://blogs.msdn.com/b/visualstudio/archive/2010/06/19/resgen-exe-error-an-attempt-was-made-to-load-a-program-with-an-incorrect-format.aspx
la "menata" come ho scritto sopra è il fatto che se dallo stesso VS2010 vuoi manutenere 2 progetti, di cui il primo importato con il bug descritto e l'altro puro 64bit fatto nuovo da vs2010 ogni volta che vai a compilare devi rimuovere il fix sul file ResGen.exe
bah... spero sia utile ad altri noi con il nostro team siamo ammattiti un bel pò
----------------------------------------------------------------------
http://www.flashinlabs.biz
o .com o .it fate voi :P
notemplate
Profilo
| Newbie
4
messaggi | Data Invio:
dom 5 dic 2010 - 23:04
Ciao Lanello,
a me serve la tua soluzione perché ho lo stesso problema ma non son riuscita a risolvere! Ti spiego:
Ho installato Visual Studio 2010 su un pc con Windows 7. Ho creato un nuovo progetto col framework 3.5. E fin qui tutto ok...
Ieri ho inserito un database access e da allora mi appare l'errore:
Il provider 'Microsoft.Jet.OLEDB.4.0' non è registrato nel computer locale.
Ho letto in giro nei forum che dovrei far andare il provider a 32 bit anziché a 64, selezionando una nuova piattaforma 'x86' anziché la 'anycpu' sotto Compila --> Gestione configurazione --> Piattaforma soluzione attiva --> Nuova...ma nella tendina non ho altre possibilità di scelta, ho solo 'anycpu'.
Ho poi trovato la tua risposta, alla digitazione nel prompt dei comandi di ciò che hai scritto, leggo: corflags Warning CF011: The specific file is strong name signed. Using /Force will invalidate the signature of this image and will require the assembly to be resigned.
Dopodiché, ho cercato i file di progetto, ma non ho capisco nello specifico dove trovare la sezione <propertygroup>.
Spero in una tua risposta.
Grazie
marco.santilli
Profilo
| Junior Member
139
messaggi | Data Invio:
ven 29 lug 2011 - 01:55
Sei riuscito a risolvere il problema?
Io sono nelle tue stesse condizioni..
Ho solo ANY CPU e non riesco ad attivare la piattaforma x86
Fammi sapere
Ciao e grazie
Mastericarus333
Profilo
| Newbie
9
messaggi | Data Invio:
ven 29 lug 2011 - 18:22
>Ciao Lanello,
>
>a me serve la tua soluzione perché ho lo stesso problema ma non
>son riuscita a risolvere! Ti spiego:
>
>Ho installato Visual Studio 2010 su un pc con Windows 7. Ho creato
>un nuovo progetto col framework 3.5. E fin qui tutto ok...
>Ieri ho inserito un database access e da allora mi appare l'errore:
>Il provider 'Microsoft.Jet.OLEDB.4.0' non è registrato nel computer
>locale.
>Ho letto in giro nei forum che dovrei far andare il provider
>a 32 bit anziché a 64, selezionando una nuova piattaforma 'x86'
>anziché la 'anycpu' sotto Compila --> Gestione configurazione
>--> Piattaforma soluzione attiva --> Nuova...ma nella tendina
>non ho altre possibilità di scelta, ho solo 'anycpu'.
>
>Ho poi trovato la tua risposta, alla digitazione nel prompt dei
>comandi di ciò che hai scritto, leggo: corflags Warning CF011:
>The specific file is strong name signed. Using /Force will invalidate
>the signature of this image and will require the assembly to
>be resigned.
>
>Dopodiché, ho cercato i file di progetto, ma non ho capisco nello
>specifico dove trovare la sezione <propertygroup>.
>
>Spero in una tua risposta.
>
>Grazie
>
io ho risolto installando Accessdatabaseengine 2007 e 2010 (sia x86 che x64) e l'errore non mi appare + (anche con applicazione eseguita e compilata a 64 bit)
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !