전체 프로젝트의 네임 스페이스를 변경하는 방법은 무엇입니까?


104

이 기사에서 데모 응용 프로그램을 수정하고 있습니다. http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

내 네임 스페이스를 사용하기 위해 모든 파일을 업데이트해야합니다. 예를 들어 여기에있는 파일은 다음과 같습니다.

MySolution\MyApp\DemoApp\ViewModel\MainWindowViewModel.cs

다음 네임 스페이스를 사용하고 있습니다.

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

여기로 파일을 이동해야합니다 (DemoApp 폴더 제거).

MySolution\MyApp\ViewModel\MainWindowViewModel.cs

또한 올바른 네임 스페이스를 사용하려면 :

namespace MyApp.ViewModel
{
....

Visual Studio 2010에서 어떻게할까요?

여기서 업데이트 확인 은 가능합니다 . Visual Studio에서 프로젝트 네임 스페이스 변경 이제 프로젝트의 네임 스페이스 를 변경하는 방법을 알고 있지만 파일 시스템에서 파일을 이동하는 방법은 무엇입니까? ( "DemoApp"폴더 제거)


4
FYI와 마찬가지로 .NET의 폴더 구조와 일치하기 위해 네임 스페이스가 반드시 필요한 것은 아니며 필수는 아닙니다.
James Michael Hare

1
james가 말했듯이 꼭 필요한 것은 아니지만 .. 내가 작업해야하는 앱에서 누군가가 왜 "일을 끝내지"않았는지 의문을 가질 것입니다.
NotMe 2011

1
파일 이동과 관련하여 .. 음, 잘라 내기 / 붙여 넣기 및 드래그 / 드롭은 일반적으로 Visual Studio 솔루션 관리자 내에서 작동합니다 .. 또는 폴더 이름 변경 또는 삭제 만 가능합니다. 당신이 정말로하려는 일에 따라.
NotMe 2011

답변:


124

간단한 Replace in Files ( Ctrl+ Shift+ H)가 트릭을 수행 할 것이라고 상상합니다 . 간단하게 교체 namespace DemoApp와 함께 namespace MyApp. 그런 다음 솔루션을 빌드하고 알 ​​수없는 식별자에 대한 컴파일 오류를 찾습니다. 정규화 된 것이 아무것도 DemoApp의지 할 필요가 변경이되는 MyApp.


62
중대한; 프로젝트 속성의 기본 네임 스페이스도 변경하십시오. 이것은 resx와 같은 것들에 대한 네임 스페이스를 제어합니다
Marc Gravell

WPF 창을 나타내는 몇 개의 XAML 파일이 있으므로이 방법이 작동하지 않습니다.
Pieter

6
또한 using에서 using DemoApp로 변경할 모든 문에서 Replace를 실행해야 합니다 using Myapp.
swbandit 2015

5
또한의 폴더 뷰에서의 Web.config 파일을 모두 </ 추가 네임 스페이스 = "OldNameSpace"> 이름 바꾸기
neo112

@Pieter 전체 응용 프로그램을 모두 바꾼 다음 Marc가 제안한대로 속성을 업데이트 한 다음 솔루션을 닫고 다시 열 수 있어야합니다. 그렇지 않으면 VS가 자동 완성으로 설명 할 수없는 동작을 수행합니다.
에릭

153

파일 중 하나에서 네임 스페이스가 선언 된 곳으로 이동하십시오. 변경하려는 네임 스페이스 부분에 커서를 놓고를 누릅니다 F2. 모든 파일에서 네임 스페이스의 이름을 바꿔야합니다. 적어도이 답변을 테스트하기 위해 만든 작은 데모 프로젝트에서 작동했습니다!

VS 버전에 따라 바로 가기는 Ctrl- R, Ctrl- 일 수도 있습니다 R.


1
어떤 이유로 나를 위해 작동하지 않습니다. F2를 누르면 아무 일도 일어나지 않습니다.
javapowered 2014 년

6
@javapowered, 핫키가 사용자 정의되었습니다. 당신의 VS 옵션을 찾으십시오. 오늘은 CTRL-R CTRL-R입니다.
에이미

4
참고 : 여전히이 방법을 선호하지만보기 및 Views / 디렉터리에 포함 된 web.config 파일의 참조를 대체하지 못했습니다. 그냥 조심하세요.
Wiseguy

3
핫키 변경에 의존하지 않아야하는 버전의 경우 네임 스페이스 이름을 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 선택하십시오.
Kat

3
불행히도 새 이름에 . 문자 .
Botond Balázs


3

Ctrl+ Shift+H 실제 솔루션이 아닙니다.

Resharper를 사용하여 솔루션의 모든 네임 스페이스 정의를 변경할 수 있습니다. 이것은 내가 전에 시도한 가장 좋은 방법입니다.

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


2
ReSharper에서 전체 날려 고가의 데스크탑 컴퓨터가 필요합니다
이반 G.에게

@IvanG. 글쎄, 많은 상업 프로젝트에는 완전히 값 비싼 개발자가 필요하므로 기계와 R # 라이센스는 더 큰 계획에서 너무 비싸지 않습니다.)이 (또는 Adam 또는 Amy의) 방법이 올바르게 작동했는지 확인해야 할 경우 , 당신은 볼 수 찾기 코드 문제
StuartLC

1
@StuartLC 안타깝게도 전용 업무 공간과 대형 데스크탑의 시대는 지나갔고, 저는 제 개발을 위해 정말 강력한 노트북을 사용하고 있고, resharper가 거의 그것을 죽이기 때문에 시간을 소중히 여기는 사람에게는 추천하지 않을 것입니다.
Ivan G.

얘들 아 그냥, 그것은 무료 평가판 버전을 활성화 설치 :-) 당신이 알고 무료로 이름을 변경하는 데 사용할 이름을 변경하고 ;-) 원하는 경우 제거 할 수 있습니다
셀 추크 (Selçuk) Ermaya을

1

BareGrep이라는 도구를 사용하여 폴더 구조를 검토하여 모든 네임 스페이스 변경 사항을 확인했습니다. 지정된 파일 구조의 파일을 검색 할 수있는 무료 도구입니다.


파일 일치 REGEX : (.exe) | (.dll) | (.cache) | (.pdb) 그런 다음 일치를 반전합니다 . 이 패턴을 반복하여 다른 바이너리 등을 제외합니다.
twobob 2014-07-01


1

ReSharper를 사용하여 네임 스페이스 리팩토링을 수행 할 수 있습니다. 30 일 무료 평가판이 제공됩니다. 폴더 구조에 따라 이름이 변경됩니다.

단계 :

1) 리팩토링 할 프로젝트 / 폴더 / 파일을 마우스 오른쪽 버튼으로 클릭합니다.

2) ReSharper를 설치했다면 Refactor-> Adjust Namespaces .... 옵션이 표시됩니다. 그러니 이것을 클릭하십시오.

여기에 이미지 설명 입력

선택한 모든 파일의 이름 공간을 자동으로 변경합니다.


고마워 .. 할 수 있었다.
sgowd

0

나는 모든 것을 시도했지만 실제로 작동하는 솔루션을 찾았습니다. 새로운 네임 스페이스 이름 등으로 독립 솔루션을 생성합니다.

  1. 기본 양식에서 네임 스페이스 이름 찾기-> 마우스 오른쪽 버튼 클릭-> 리팩터링-> 이름 바꾸기 및 새 이름 선택. 모든 상자를 선택하고 확인을 클릭하십시오.

  2. 솔루션 탐색기에서 솔루션 이름을 새 이름으로 바꿉니다.

  3. 솔루션 탐색기에서 프로젝트 이름을 새 이름으로 바꿉니다.

  4. VS를 닫고 솔루션 폴더의 폴더 이름 (예 : total commander)을 새 이름으로 바꿉니다.

  5. .sln 파일에서 이전 이름을 새 이름으로 바꿉니다.

  6. 이전 .suo 파일 삭제 (숨김)

  7. VS 시작 및 프로젝트로드

  8. 프로젝트-> 속성-> 어셈블리 이름 및 기본 네임 스페이스를 새 이름으로 변경합니다.


0

나는 그것이 꽤 늦었다는 것을 알고 있지만 지금부터 그것을하려는 모든 사람들 에게이 답변이 도움이되기를 바랍니다. 당신이있는 경우 CodeRush Express( 무료 버전을 , 그리고는 '이 있어야')를 설치, 그것은 프로젝트 전체 네임 스페이스를 변경하는 간단한 방법을 제공합니다. 변경하려는 네임 스페이스에 커서를 놓기 만하면 문자열 smart tag아래에 (작은 파란색 상자) 가 표시됩니다 namespace. 해당 상자를 클릭하거나 Ctrl +키를 눌러 Rename옵션 을 볼 수 있습니다. 그것을 선택한 다음 프로젝트 전체 네임 스페이스의 새 이름을 입력 Apply하고 새 대화 상자에서 변경하려는 프로젝트의 위치를 클릭 하고 선택 OK합니다. 끝난! :-)


제 경험상 CodeRush Express는 '필수품'(개인 의견)이 아닙니다. 이런 일에 편리합니다.
Maarten 2013 년

0

네임 스페이스와 솔루션 이름을 변경하고 싶을 때 다음과 같이했습니다.
1) 네임 스페이스를 선택하고 이름을 변경하고 솔루션 이름으로 동일한 작업을 수행했습니다.
2) 전구를 클릭하고 이전 네임 스페이스
3 의 모든 인스턴스의 이름을 바꿨습니다. ) 솔루션에서 모든 프로젝트 제거
4) Visual Studio 종료
5) Windows 탐색기에서 모든 프로젝트 이름 변경
6) Visual Studio를 열고 모든 프로젝트를 다시 추가
7) 속성의 모든 프로젝트에서 네임 스페이스 이름 바꾸기
8) bin 폴더 제거 ( 모든 프로젝트에서)
9) 프로젝트를 다시 빌드하십시오.

그것은 아무런 문제없이 나를 위해 일했으며 내 프로젝트는 소스 제어도 잘했습니다. 이러한 변경 사항을 리모컨으로 푸시 한 후 모두 괜찮 았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.