2009-08-19 42 views
8

Si verifica un errore durante la distribuzione di un progetto su uno dei server del nostro cliente. Il sistema funziona bene nei nostri ambienti di sviluppo e gestione locale. L'errore è:Il nome o lo spazio dei nomi 'Linq' non esiste nello spazio dei nomi 'System.Data'

Il tipo o dello spazio dei nomi il nome 'Linq' non esiste nello spazio dei nomi 'System.Data'

abbiamo fatto le ovvie controlli: - Abbiamo i riferimenti nel web.config per System.Data.Linq, System.Core, System.Linq, ecc. - Il framework di destinazione del nostro progetto è 3.5 - Abbiamo confermato che la versione di ASP.NET in IIS sul server del client è 2.0.50727 - Abbiamo ha confermato che il server ha installato il framework 3.5 e contiene la DLL System.Data.Linq nella cartella Windows/assembly.

Altre idee?

+1

Dopo aver installato i service pack (per Orion di seguito), e dopo alcuni riavvii, ha iniziato a funzionare. Ancora non sono sicuro di quale fosse il problema di root, ma funziona ora. – Keith

risposta

16

Ho avuto lo stesso errore di compilazione durante la creazione di un progetto dagli script, mentre Visual Studio 2010 stava costruendo lo stesso fine del progetto. Quando ho provato ad aggiungere il riferimento System.Core da VS2010, è tornato indietro con un errore che diceva che il riferimento è impostato in modo implicito e non aggiungerebbe il riferimento.

La soluzione per me era aggiungere manualmente il seguente riferimento nel file csproj. Si noti framework di destinazione del riferimento è impostata in modo esplicito 3.5 (questo è in cima framework di destinazione del progetto viene impostata su 3.5):

<Reference Include="System.Core"> 
    <RequiredTargetFramework>3.5</RequiredTargetFramework> 
</Reference> 
+0

Aggiunta di un riferimento a System.Core ha funzionato per noi su un progetto CLR SQL che è stato convertito in un progetto SQL Data Tools. – Seth

+0

Ho questo problema e System.Core è già referenziato. –

+0

@HotLicks è referenziato esplicitamente come sopra nel file csproj? Puoi aprire il tuo file .csproj e controllare? – Ashby

2

Da here: "Verrà visualizzato questo errore se non si fa riferimento a" System.Core.dll "(l'assembly che contiene le API LINQ principali). Tuttavia, tutti i modelli predefiniti dovrebbero includere questo riferimento quando si sceglie .NET 3.0. "

+0

Dal mio post originale: "Abbiamo i riferimenti nel web.config per System.Data.Linq, System.Core, System.Linq, ecc." – Keith

2

Ho avuto un problema simile lo sviluppo di un sito web in Visual Web Developer 2010 con .NET 4.0 .

VWD potrebbe trovare lo spazio dei nomi "System.Linq" per i file in App_Code, ma non per i file in altre directory. Strano ma vero.

Il "progetto" è stato aperto utilizzando "Apri sito Web", quindi non c'era nessun file .csproj.

Copia:

C: \ Program Files \ assembly di riferimento \ Microsoft \ Framework \ .NETFramework \ v4.0 \ System.Core.dll

al sito bin directory ha causato la ricerca dello spazio dei nomi da parte di VWD per i file in altre directory.

Spero che aiuti qualcuno.

0

So che la domanda ha già una risposta, ma solo per chiarire, sul perché in Visual Studio si ottiene Build Succeeded e si incontrano problemi quando tenta di creare SVN o qualche altro repository?

Motivo: viene richiamato dall'IDE quando richiama il sistema di build, ma non da MSBuild stesso.

Ma dopo aver aggiunto il riferimento come Ashby detto in precedenza, funzionerà sicuramente. Questo problema si verifica anche durante Visual Studio 2012 e, poiché ne ero a conoscenza, l'ho fatto e tutto ha funzionato correttamente.

saluti,

Varun Shringarpure

0

Ho avuto lo stesso problema, ma la causa principale diversa.

Avevo modificato la dichiarazione dello spazio dei nomi nel file designer.cs del dbml. Ogni volta che aggiungevo un nuovo oggetto tramite il designer, Visual Studio ripristinava la dichiarazione dello spazio dei nomi e la compilazione falliva.

Semplicemente cambiando lo spazio dei nomi su quello che dovrebbe essere risolto il problema.

Problemi correlati