2013-11-26 2 views
1

유형 당 하나의 파일 인 C# 소스 코드 (쓰리 프)를 생성하는 도구를 사용합니다. 모든 유형을 하나의 컴파일 가능한 소스 파일로 병합하고 싶습니다. 각 파일의 텍스트를 단순히 연결하면 레이아웃에 컴파일하지 않는 단일 파일이 생성되므로 컴파일 가능하다고 말합니다. 블록을 여러 개 사용.C# 소스 파일 합병

이 작업을 수행하는 명령 줄 도구가 있습니까? 아니면 하나를 만들 필요가 있습니까? 그렇다면 어떤 libs에서 그렇게해야합니까?

======= 편집 ======

아무것도 찾아 중고품 컴파일러 소스에 기여에서 wimped, 그래서 트릭 않는이를 기절하지 않았나요 : https://github.com/myles-mcdonnell/SourceMeld

이제 VS에서 두 가지 미리 빌드 단계를 추가 할 수 있습니다. 하나는 exe로 소스 파일을 생성하고 두 개는 하나의 파일 (프로젝트에 포함 된 파일)에 병합하며 dev는 빌드 프로세스를 완벽하게 처리합니다.

답변

4

스마트 파일로 작성하는 경우 소스 파일을 연결할 수 있습니다.

using External.Name.Space; 
namespace My.Name.Space 
{ 
    ... 
} 

using External.Name.Space; 
namespace My.Name.Space 
{ 
    ... 
} 

을하지만이 작업을 수행합니다 :

참조,이 작동하지 않습니다

namespace My.Name.Space 
{ 
    using External.Name.Space; 

    ... 
} 

namespace My.Name.Space 
{ 
    using External.Name.Space; 

    ... 
} 

이 두 표기법 (자세한 내용은 "Should Usings be inside or outside the namespace"참조) 대부분 기능적으로 동일합니다.

ReSharper와 같은 도구는 여러 번의 클릭으로 모든 소스 파일을 첫 번째 표기법에서 두 번째 표기법으로 변환 할 수 있습니다 (무료 평가판 버전에서도 가능).

편집 :

코드 생성기를 사용하는 것을 잊었습니다. 그런 다음 다음 옵션을 사용할 수 있습니다.

  1. 스릴 릿의 템플릿을 변경합니다 (도구에 익숙하지 않지만 일종의 템플릿이 필요합니다).
  2. 내부에서 네임 스페이스 외부에서 사용을 이동하는 도구를 작성하십시오. 이것은 하나의 Regex.Replace 호출이어야합니다.
  3. 연결된 파일을 읽고 모든 사용을 맨 위로 이동하는 도구를 작성하십시오. 다시 말하지만, 이것은 매우 간단해야합니다.
+1

"스마트 방식"은 단어의 잘못된 선택이지만 아이디어가 효과적입니다. –

+0

그건 옵션이지만, 저를 쓰래드 컴파일러를 확장/변경해야합니다. 나는 포스트 생성 솔루션을 찾고 싶다. –

+0

@MylesMcDonnell 편집 됨. –