Domanda

Ho un progetto Visual Studio C # (.csproj) che ha un riferimento alla versione Framework64 di System.Data . Quando provo a creare utilizzando MSBuild / Team Foundation Server (TFS) su un altro computer, ha esito negativo poiché non esiste la DLL a 64 bit.

Dovrei legarmi alla versione Framework, o questo mi limiterà quando eseguo su macchine a 64 bit? .NET reindirizza il binding per utilizzare 64 bit quando possibile?

È stato utile?

Soluzione

Penso che intendi Qualsiasi CPU nella tua domanda, giusto? Supponendo che sia così, impegnarsi senza riguardo per il testimone è la strada da percorrere in quasi tutte le circostanze.

Ricorda che .NET è JITed (compilato Just In Time) - che significa codice a 32 e 64 bit da un C # o VB.NET è lo stesso, indipendentemente dall'architettura su cui si intende eseguire. Quando il codice è JIT in fase di esecuzione, è allora che diventa 32 o 64 bit.

In alcune situazioni, devi pensare all'architettura di destinazione. Un caso specifico potrebbe essere qualsiasi riferimento / dipendenza su COM - DLL wrapper, .NET Framework fornito o altrimenti. Dato che questi file DLL verranno contrassegnati (nel caso di COM) come solo 32 bit (poiché COM è solo architettura a 32 bit) se non fossero contrassegnati come 32 bit, l'interoperabilità con COM non funzionerebbe. Pertanto, poiché sono esplicitamente contrassegnati, anche i risultati del tuo progetto dovrebbero essere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top