2012-02-06 28 views
5

Sto provando a utilizzare le impostazioni dell'applicazione nel mio progetto.Nome tipo o spazio nomi 'Proprietà' non esiste

Quando si tenta la seguente riga di codice nel progetto, viene visualizzato un errore.

TransferLogs.Properties.Settings.Default.ValleyLastRun = timeNow;

L'errore risultante è:

Il tipo o dello spazio dei nomi il nome 'Proprietà' non esiste nello spazio dei nomi '' Williams.TransferLogs

(Vi manca un riferimento all'assembly?)

Ho l'impostazione "ValleyLastRun" definita come DateTime nella mia pagina Progetto-> Proprietà-> Impostazioni. Non so perché non posso fare riferimento all'impostazione nel mio progetto.

Ecco la finestra soluzione:

enter image description here

+0

hai provato una costruzione pulita? –

+4

Invia uno screenshot della finestra di Esplora risorse del progetto con i riferimenti che mostrano, e sia il codice padre che contiene "ValleyLastRun', sia il codice che lo utilizza. cercare è se lo spazio dei nomi è corretto, se il progetto contiene effettivamente un riferimento al p roject, che tipo di riferimento è (GAC'd o riferimento al progetto) e se lo stai configurando correttamente. Potresti anche voler pulire e ricostruire e vedere se questo risolve il problema. Inoltre, che tipo di progetto è? –

+0

Se proprietà è una classe, è impostata per essere pubblica? –

risposta

7

Il problema è legato al file di risorse. Per impostazione predefinita, le impostazioni sono generate come interne. Puoi cambiarlo nella casella a cascata sopra le impostazioni.

A volte c'è un problema con il costruttore di questa classe perché rimane interno. Puoi cambiarlo manualmente ma dopo ogni modifica delle Impostazioni verrà reimpostato su interno.

12

Questo problema può anche verificarsi se è stato modificato lo spazio dei nomi.

+1

Si noti inoltre che la modifica dello spazio dei nomi può comportare semplicemente la modifica del caso del namespace o di una parte dello spazio dei nomi. Quindi dì che cambi il caso dello spazio dei nomi nelle impostazioni del progetto, quindi modifica il modificatore di accesso di un file di progetto come Proprietà, quindi riprenderà il nuovo spazio dei nomi "cased" ... ma se tutte le tue forme fanno riferimento a dire il precedente MAIUS namespace e hai modificato lo spazio dei nomi del progetto in ProperCase, non riusciranno a trovare il "nuovo" file di progetto o risorse perché verrà generato automaticamente con ProperCase. – rism

+1

Questo era il mio problema: avevo cambiato il mio spazio dei nomi Program.cs da Foo a Bar.Foo senza cambiarlo nelle proprietà del progetto. La classe Settings.Designer.cs è stata naturalmente generata nel namespace Foo, il che mi ha sorprendentemente impedito di farvi riferimento da Program.cs. – Godsmith

4

Ho riscontrato questo errore perché il mio file Settings.settings è scomparso dopo un aggiornamento di svn (non è la soluzione a questo caso ma può aiutare gli altri).

Per risolvere andare alle proprietà del progetto, impostazioni e fare clic sul collegamento per creare un file di impostazioni. Dopodiché genera magicamente le proprietà utilizzate nel progetto.

7

Come user1959018, ho anche affrontato questo messaggio di errore anche se per motivi diversi dall'OP, e posterò quello che finalmente ho trovato il mio problema e la soluzione di essere nel caso in cui aiuti gli altri.

Nella cartella Proprietà del progetto devono essere presenti (almeno) due file, Resources.resx e Resources.Designer.cs. Nel mio caso il file Resources.Designer.cs non era più incluso nel progetto. Questo problema può essere risolto modificando (o ripristinando una vecchia copia di) il file .csproj, o utilizzando Esplora soluzioni di Visual Studio per "mostrare tutti i file", quindi fare clic con il tasto destro del mouse su Resources.Designer.cs e selezionare "Include in project" .

E il credito dove è dovuto il credito, ho trovato questa soluzione qui: http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/ebeca7a8-c7a3-4cb6-a40e-89c5fdb70c82 nella risposta di NJLASSI.

EDIT:

Basta re-includere il file Resources.Designer.cs nel progetto non è una buona soluzione. Vedi here per maggiori dettagli.

1

Ho avuto un errore leggermente diverso (ma simile). Quando ho controllato Resources.esigner.cs non c'era. (Stavo aggiornando a una soluzione VS2013 e passando a Team Foundation VC)

Fare clic con il pulsante destro del mouse su Resources.resx e utilizzare "Esegui strumento personalizzato" ha costruito correttamente Resources.Designer.cs.

0

Si riceve questo errore perché non si dispone di una sezione Proprietà dell'applicazione. Se fai clic con il tasto destro del mouse sul progetto in solution explorer e scegli di creare un nuovo file di impostazioni, puoi accedervi tramite Impostazioni1. "Tuoinfo". Settings1 e yourinfo cambiano a seconda di cosa hai chiamato il tuo file di impostazioni.

0

Ho risolto questo problema rimuovendo "interno" nella definizione della mia classe di risorse. Tuttavia, come dice slfan, torna ad "interno" dopo ogni modifica effettuata. Quindi assicurati di verificarlo prima.

3

Ho avuto il problema che le proprietà del mio progetto non contenevano lo spazio dei nomi corretto (-> Applicazione) che ho utilizzato in tutta l'applicazione. La modifica dello spazio dei nomi predefinito mi ha permesso di accedere a risorse e impostazioni all'interno delle classi.

0

Ho riscontrato questo problema quando ho modificato lo spazio dei nomi di una libreria di classi. Quando aggiungi un file di impostazioni, crea una classe che utilizza lo spazio dei nomi (in Settings.cs - "namespace YourNameSpace.Properties {....". Quando ho rinominato il mio spazio dei nomi, non è stato possibile trovare lo spazio dei nomi .Properties perché io Nuovo spazio dei nomi "namespace YourRenamedNameSpace" quindi non c'era "YourRenamedNameSpace.Properties" In Setting.cs, ho corretto lo spazio dei nomi in "namespace YourRenamedNameSpace.Properties {...." e Properties.Settings era disponibile all'interno del nuovo spazio dei nomi

Problemi correlati