2010-02-11 2 views
7

이미 프로젝트에있는 대화 상자와 거의 동일한 새 양식을 만들고 싶습니다. 내가 시간을 낭비하고 싶지 않다면 대부분의 양식을 다시 만들 필요가 없습니다.Visual Studio 프로젝트에 C# 복사, 양식 붙여 넣기

복사 한 다음 내 프로젝트에 붙여 넣고 .cs에서 NewItem.cs으로 이름을 바꿉니다.

내 솔루션을 다시 빌드 할 때 오류이 표시됩니다.

The item "obj\Debug\Control.Forms.NewUser.resources" was specified more 
than once in the "Resources" parameter. 
Duplicate items are not supported by the "Resources" parameter. 

내가 뭘 잘못하고 있니? 문제를 해결할 방법이 있습니까?

+0

해결 했습니까? –

+0

아직, 아직 문제가 있습니다. – Kevin

답변

3

당신은 아마 당신이이 파일을 복사하지만, 이름을 변경하지 않은 대화를 복사 할 때

Original.resx

라는 파일에 저장된 일부 지역 자원 (이 그래도 일어나지한다)이있다. 솔루션 탐색기에서 Copy of Original.cs 아래에 .resx 파일이 있는지 확인하십시오. 그렇다면 이름을 바꾸십시오.

어쨌든 obj 및 bin 폴더를 지우려면 다시 정리 (프로젝트 또는 솔루션을 마우스 오른쪽 단추로 클릭) 한 후 다시 컴파일 해보십시오.

+0

New.cs로 Original.cs의 이름을 변경했을 때 Original.resx 파일의 복사본이 리팩토링되었습니다. – Kevin

+0

'GenerateMembers'속성을 false로 설정 한 몇 가지 컨트롤이 있는데, 그 이유는 시작할 resx 파일을 만든 이유입니다 와. resx 파일 안에 컨트롤에는 'PublicKeyToken'속성이 있습니다.이 속성은 두 파일에서 동일합니다. 그것이 문제인지 궁금합니다. – Kevin

+1

GenerateMembers를 false로 설정하면 .RESX 파일을 만들 수 없습니다. 각 클래스의 이름이 .cs 및 designer.cs에 정확하게 지정되어 있는지 확인하십시오. 이전에 폼의 복사본을 만들고 코드로 이동하여 클래스 이름을 변경하면 Visual Studio에서 모든 코드를 다시 작성하고 원본 form.cs 파일의 클래스 이름도 변경합니다 (따라서 새 이름으로 복제). –

0

원본 양식의 복사본을 만들 때 VS는 원래 네임 스페이스를 변경하지 않습니다 (귀하의 경우 여전히 "원본"입니다). 따라서이 중복 된 네임 스페이스 ("원본 복사본"에서)를 고유 한 somethings로 변경하십시오.

2

이전 질문이지만 OP 담당자가 문제를 해결하지 못했다고 OP가 주장했기 때문에 미래의 Google 직원에게 답변 해 드리겠습니다.

NewItem.cs에는 여전히 Original.cs과 같은 이름의 클래스가 포함되어 있습니다. 이것은 파일 이름과 클래스 이름이 다른 경우 발생합니다 (Java 용 Eclipse와 달리 Visual Studio에서는 C# 프로젝트에서 허용). 복사 붙여 넣기는 파일 이름에 "접두사의 사본"을 추가하고 파일 이름 바꾸기 기능이 클래스의 이름을 바꾸는 것이 적절하다고 판단 할만큼 지능적이지 않습니다.

오류를 수정하려면 중복 된 프로젝트 항목의 클래스 이름을 변경해야합니다. WinForms의 경우에는 솔루션 탐색기가 기본적으로 표시하는 두 개의 파일 (비주얼 디자이너가 인사하는 경우 마우스 오른쪽 버튼 -> 코드 표시 또는 F7)과 .designer.cs를 의미하므로 파일 대신 항목을 말합니다. .resx AFAIK를 수정할 필요가 없습니다.

관련 문제