2009-02-06 2 views
2

저는 VS 2005에서 VS 2008로 솔루션을 업그레이드했습니다. 여전히 .net 2.0 프레임 워크를 목표로합니다. 전환 마법사는 간단하며 전환 오류가 발생하지 않았습니다. 지금까지 가지고있는 유일한 쇠고기는 VS가 네이밍 충돌을 일으키는 일부 네임 스페이스를 변경했기 때문에 업그레이드 후 즉시 컴파일 할 수 없다는 것입니다.VS 2008 업그레이드가 내 데이터 집합 디자이너 네임 스페이스를 변경합니다.

예를 들어 "dsClient"라는 데이터 집합이있는 "Clients"폴더가있는 DAL 프로젝트 (MyNameSpace라고도 함)가 있습니다. 변환 과정에서

namespace MyNameSpace 
{ 
    public partial class dsClient : global::System.Data.DataSet 
    { 
    } 
} 

은, VS 내 디자이너 클래스를 변경하고, 그래서 지금의 모습 네임 스페이스의 끝으로 폴더 이름을 추가 : 여기

데이터 집합 디자이너 클래스는 변환하기 전에 모습입니다 이 :

namespace MyNameSpace.Clients 
{ 
    public partial class dsClient : global::System.Data.DataSet 
    { 
    } 
} 
이 가진 문제는 내가 같은 이름의 폴더에있는 다른 클래스 파일이 있다는 것입니다

:

namespace MyNameSpace 
{ 
    public class Clients 
    { 
    } 
} 

이로 인해 명명 충돌이 발생하고 VS에서 변경 한 내용을 수동으로 수정해야합니다. 경우에 따라 VS는 네임 스페이스 이름을 폴더 이름이 아닌 데이터 집합의 이름으로 변경합니다.

변환 마법사의 설정입니까? 마법사에서 프로젝트 파일을 업데이트하고 코드 만 남기고 싶습니다.

답변

7

당신은 코드가 생성되어야하는 네임 스페이스를 제공함으로써이 문제를 해결할 수 있습니다. 그런 다음 xsd 파일에서 마우스 오른쪽 버튼을 클릭하고 "사용자 지정 도구 실행"을 선택하면 완료됩니다.

2

나는 네임 스페이스가 xsd 파일의 위치에 있다고 믿는다. 2003 년에 xsd를 넣은 폴더가 네임 스페이스에 들어간 것으로 생각합니다.

xsd를 DAL 프로젝트의 루트로 옮기면 코드를 수정해야합니다. 이상적이지는 않을지 모르겠지만 DataSet 생성기가 작동하는 방식이라고 생각합니다.

놀라운 점은 네임 스페이스에 2005 솔루션의 "클라이언트"부분이 포함되지 않았다는 것입니다. 루트에서 생성 된 것처럼 느껴지지만 다시 생성하지 않고 하위 폴더로 이동했습니다. XSD를 파일의

열기 속성을하고 "사용자 지정 도구 네임 스페이스"옆에있는 코드 네임 스페이스를 넣어 :

+0

"네임 스페이스에 네 2005 솔루션의"클라이언트 "부분이 포함되지 않았다는 사실을 놀라게하는 유일한 것입니다. 이제 2005 년에 자동 생성 클래스를 수동으로 변경해야했습니다. 새 데이터 세트를 추가 한 후 이 소리는 데이터 세트 생성기의 "기능"입니다. –

+0

오른쪽. 네임 스페이스를 프로젝트의 위치와 다르게하려면 Albic의 대답이 좀 더 영구적 인 솔루션을 제공합니다. –

0

"사용자 지정 도구 네임 스페이스"파일 속성을 알지 못했습니다. 고마워,이 정확히 내가 무엇을 찾고 있었는지! : D

관련 문제