come cambiare lo spazio dei nomi dell'intero progetto?


104

Sto modificando l'applicazione demo da questo articolo: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

Devo aggiornare tutti i file per utilizzare il mio spazio dei nomi, ad esempio ora il file si trova qui:

MySolution\MyApp\DemoApp\ViewModel\MainWindowViewModel.cs

sta usando tale spazio dei nomi:

namespace DemoApp.ViewModel
{
/// <summary>
/// The ViewModel for the application's main window.
/// </summary>
public class MainWindowViewModel : WorkspaceViewModel

Devo spostare il file qui (rimuovere la cartella DemoApp):

MySolution\MyApp\ViewModel\MainWindowViewModel.cs

e anche per utilizzare lo spazio dei nomi corretto:

namespace MyApp.ViewModel
{
....

come farlo in Visual Studio 2010?

Aggiorna ok qui è possibile duplicare Cambia spazio dei nomi del progetto in Visual Studio Ora so come cambiare lo spazio dei nomi del progetto, ma come spostare i file sul file system? (elimina la cartella "DemoApp")


4
Proprio come FYI, non è necessario che gli spazi dei nomi corrispondano alla struttura delle cartelle in .NET, non è necessario.
James Michael Hare

1
Come ha detto James, non è richiesto .. ma mi chiedo perché qualcuno non ha "finito il lavoro" su un'app su cui dovevo lavorare.
NotMe

1
Per quanto riguarda lo spostamento di file .. Um, taglia / incolla e trascina / rilascia di solito funziona all'interno di Visual Studio Solution Manager .. o anche solo rinomina cartella o elimina. a seconda di cosa stai veramente cercando di fare.
NotMe

Risposte:


124

Immagino che un semplice Sostituisci nei file ( Ctrl+ Shift+ H) farà quasi il trucco; sostituire semplicemente namespace DemoAppcon namespace MyApp. Successivamente, crea la soluzione e cerca gli errori di compilazione per identificatori sconosciuti. Tutto ciò che è pienamente qualificato DemoAppdovrà essere modificato in MyApp.


62
Importante; cambia anche lo spazio dei nomi predefinito nelle proprietà del progetto; questo controlla lo spazio dei nomi per cose come resx
Marc Gravell

Ho un paio di file XAML che rappresentano le finestre WPF, quindi questo non funzionerà per me.
Pieter

6
Dovresti anche eseguire un Sostituisci su qualsiasi usingistruzione per passare da using DemoAppa using Myapp.
swbandit

5
rinomina anche <add namespace = "OldNameSpace" /> in tutti i file web.config nella cartella delle viste
neo112

@Pieter Dovresti essere in grado di sostituire tutto per l'intera applicazione, seguito da un aggiornamento nelle proprietà come suggerisce Marc, quindi chiudere la soluzione e riaprirla altrimenti VS ha un comportamento inspiegabile con un po 'di completamento automatico.
Eric,

153

Vai in un posto in cui lo spazio dei nomi è dichiarato in uno dei tuoi file. Posizionare il cursore sulla parte dello spazio dei nomi che si desidera modificare e premere F2. Questo dovrebbe rinominare lo spazio dei nomi in ogni file. Almeno, ha funzionato nel mio piccolo progetto demo che ho creato per testare questa risposta!

A seconda della versione VS, il collegamento potrebbe anche essere Ctrl- R, Ctrl- R.


1
per qualche motivo non funziona per me. Premo F2 e non succede niente.
javapowered il

6
@javapowered, quindi il tuo tasto di scelta rapida è stato personalizzato. Cerca nelle opzioni VS per il tuo. Oggi il mio è CTRL-R CTRL-R.
Amy

4
Nota: sebbene io preferisca ancora questo metodo, [comprensibilmente] non è riuscito a sostituire i riferimenti nelle viste e nel file web.config contenuto nella directory Views /. Basta guardare per quelli.
Wiseguy

3
Per una versione che non dovrebbe dipendere dalle modifiche dei tasti di scelta rapida, fai clic con il pulsante destro del mouse sul nome dello spazio dei nomi e scegli Rinomina.
Kat

3
Sfortunatamente questo non funziona se vuoi che il nuovo nome includa un .carattere.
Botond Balázs

27

Basta fare clic con il pulsante destro del mouse sulla soluzione, andare su proprietà, modificare "spazio dei nomi predefinito" nella sezione "Applicazione".

inserisci qui la descrizione dell'immagine


3
Cambia lo spazio dei nomi nei file esistenti?
Priyesh Kumar

5
No, non lo farà.
Anuja Lamahewa

3

Ctrl+ Shift+ Hnon è la vera soluzione.

È possibile utilizzare Resharper per modificare tutte le definizioni dello spazio dei nomi nella soluzione. Questo è il modo migliore che ho provato prima.

https://www.jetbrains.com/resharper/features/code_refactoring.html


2
resharper richiede una costosa macchina desktop in piena regola
Ivan G.

@IvanG. beh, molti progetti commerciali richiedono anche sviluppatori costosi in piena regola, quindi una macchina e una licenza R # non sono troppo costose nel più ampio schema delle cose;) Se è necessario verificare che questo metodo (o quello di Adam o di Amy) abbia funzionato correttamente , puoi guardare Trova problemi di codice
StuartLC

1
@StuartLC sfortunatamente i giorni di un posto di lavoro dedicato e di un grande desktop sono passati, uso un laptop davvero potente per il mio sviluppo e il resharper praticamente lo uccide, quindi non lo consiglio a nessuno che apprezza il tempo.
Ivan G.

Ragazzi che puoi usare per rinominare gratuitamente lo sai :-) Installalo attiva la versione di prova gratuita, rinominala e disinstallala se vuoi ;-)
Selçuk Ermaya

1

Ho esaminato la struttura delle cartelle con uno strumento chiamato BareGrep per assicurarmi di aver ottenuto tutte le modifiche allo spazio dei nomi. È uno strumento gratuito che ti permetterà di cercare i file in una struttura di file specificata.


file match REGEX: (.exe) | (.dll) | (.cache) | (.pdb) quindi inverti la corrispondenza . ripetere questo modello per escludere altri binari e così via.
dueobob il


1

Puoi usare ReSharper per il refactoring dello spazio dei nomi. Darà una prova gratuita di 30 giorni. Cambierà il namesapce secondo la struttura delle cartelle.

passi:

1) Fare clic con il pulsante destro del mouse sul progetto / cartella / file che si desidera refactoring.

2) Se hai installato ReSharper, otterrai un'opzione Refactoring-> Adjust Namespaces .... Quindi fai clic su questo.

inserisci qui la descrizione dell'immagine

Cambierà automaticamente gli spazi dei nomi di tutti i file selezionati.


Grazie .. sono riuscito a farlo.
sgowd

0

Ho provato di tutto ma ho trovato una soluzione che funziona davvero. Crea una soluzione indipendente con un nuovo nome dello spazio dei nomi e così via.

  1. Nella forma principale trova il nome dello spazio dei nomi -> fai clic con il pulsante destro del mouse -> Refactoring -> Rinomina e seleziona un nuovo nome. Seleziona tutte le caselle e fai clic su OK.

  2. In Esplora soluzioni rinominare il nome della soluzione con un nuovo nome.

  3. In Esplora soluzioni rinominare il nome del progetto con un nuovo nome.

  4. Chiudi VS e rinomina la cartella (ad esempio in total commander) nella cartella della soluzione con un nuovo nome.

  5. Nel file .sln rinomina il vecchio nome con un nuovo nome.

  6. Elimina i vecchi file .suo (nascosto)

  7. Avvia VS e carica il progetto

  8. Progetto -> proprietà -> cambia il nome dell'assembly e lo spazio dei nomi predefinito con un nuovo nome.


0

So che è abbastanza tardi, ma per chiunque voglia farlo d'ora in poi, spero che questa risposta si dimostri di qualche aiuto. Se è installata CodeRush Express( versione gratuita e "must have"), offre un modo semplice per modificare lo spazio dei nomi di un progetto. Basta posizionare il cursore sullo spazio dei nomi che si desidera modificare e verrà visualizzato un smart tag(un piccolo riquadro blu) sotto la namespacestringa. Puoi fare clic su quella casella o premere i Ctrl +tasti per visualizzare l' Renameopzione. Selezionalo e quindi digita il nuovo nome per lo spazio dei nomi a livello di progetto, fai clic Applye seleziona i punti del progetto che desideri vengano modificati, nella nuova finestra di dialogo e in OKesso. Fatto! :-)


Nella mia esperienza CodeRush Express non è un "must have" (opinione personale). È utile per cose come questa.
Maarten

0

Quando volevo cambiare lo spazio dei nomi e il nome della soluzione ho fatto come segue:
1) ho cambiato lo spazio dei nomi selezionandolo e rinominandolo e ho fatto lo stesso con il nome della soluzione
2) ho fatto clic sulla lampadina e rinominato tutte le istanze del vecchio spazio dei nomi
3 ) ha rimosso tutti i progetti dalla soluzione
4) ha chiuso lo studio visivo
5) ha rinominato tutti i progetti in Windows Explorer
6) ha aperto Visual Studio e aggiunto di nuovo tutti i progetti
7) rinomina gli spazi dei nomi in tutti i progetti nelle loro proprietà
8) rimosso la cartella bin ( da tutti i progetti)
9) ricostruire il progetto

Per me ha funzionato senza problemi e il mio progetto aveva anche il controllo del codice sorgente. Tutto è andato bene dopo aver applicato le modifiche al telecomando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.