Questo è in un'applicazione Web ASP.Net, con Visual Studio 2013. La soluzione è composta da diversi progetti. Ho il codice in un progetto di libreria che ha using System.Transactions
e ha funzionato bene per mesi.Il nome dello spazio dei nomi 'Transactions' non esiste nello spazio dei nomi 'System'
Oggi ho aggiunto lo stesso using System.Transactions
nel codice nel progetto di applicazione web, e non riesce con il seguente messaggio di errore:
The type or namespace name 'Transactions' does not exist in the namespace 'System'
qui ci sono alcune cose che ho provato:
- Aggiunto un riferimento a
System.Transactions
. - Verificare che il file dll di riferimento sia lo stesso in entrambi i progetti.
- Modificato il framework da 4 a 4.5 e viceversa.
- Verificato che tutti i progetti utilizzano la stessa versione di framework.
- Pulita e ricostruita la soluzione.
- Esci da Visual Studio, elimina tutti i file in AppData> Locale> Temp, ricostruito.
- Riavviato il PC.
Quindi, il risultato è che using System.Transactions
funziona correttamente in un progetto ma non in un altro, anche se entrambi i progetti sono nella stessa soluzione.
Qualche suggerimento?
EDIT: Ecco una stranezza che probabilmente non è di alcun aiuto ulteriore, ma qui va:
- Quando costruisco il progetto, non ci sono errori. Cioè, il
using System.Transactions
compila bene. - Se eseguo un'applicazione, bombarda e l'errore appare nella finestra del browser. La finestra del codice VS non mostra ancora errori.
- Se si modifica lo
using System.Transactions
o si aggiunge codice comevar x = System...
, gli errori vengono immediatamente visualizzati nellousing System.Transactions
.
** MODIFICA: ** Questa domanda è stata contrassegnata come duplicata. Non è - il duplicato proposto ha risolto la questione passando al riferimento. L'avevo già provato e non è stato d'aiuto. Nel mio caso, ho dovuto usare l'opzione "copia locale".
Entrambi i progetti sono rivolti alla stessa piattaforma? Potrebbe essere un tentativo lungo ma forse un progetto x64 sta tentando di fare riferimento a un assembly x86 o viceversa. Di solito quando succede qualcosa del genere a me, i passaggi che hai preso avrebbero risolto il problema. – Colin
Buona domanda. Ho controllato tutti i progetti nella soluzione e tutti mirati "Qualsiasi CPU". E i riferimenti sono entrambi alla DLL x86. –
Per curiosità, cosa succede se si modifica in modo esplicito l'output di build del progetto di app Web su x86? Il riferimento appare rotto nel progetto in Visual Studio? Ci sono messaggi di errore utili nella finestra Output durante la costruzione? – Colin