다음을 통해 공유


도메인 특정 언어 시작하기

이 항목에서는 Visual Studio용 모델링 SDK를 사용하여 만든 DSL(도메인별 언어)을 정의하고 사용하는 기본 개념을 설명합니다.

비고

Visual Studio의 특정 기능을 설치하면 텍스트 템플릿 변환 SDK 및 Visual Studio 모델링 SDK가 자동으로 설치됩니다. 자세한 내용은 이 블로그 게시물을 참조하세요.

DSL을 접하는 경우 이 사이트에서 찾을 수 있는 DSL 도구 랩을 사용하는 것이 좋습니다. 시각화 및 모델링 SDK

Domain-Specific 언어로 무엇을 할 수 있나요?

도메인별 언어는 특정 용도로 사용하도록 설계된 표기법(일반적으로 그래픽)입니다. 반면 UML과 같은 언어는 범용입니다. DSL에서 모델 요소의 형식과 해당 관계 및 해당 요소가 화면에 표시되는 방식을 정의할 수 있습니다.

DSL을 디자인한 경우 VSIX(Visual Studio 통합 확장) 패키지의 일부로 배포할 수 있습니다. 사용자는 Visual Studio에서 DSL을 사용합니다.

패밀리 트리 다이어그램, 도구 상자 및 탐색기

표기법은 DSL의 일부일 뿐입니다. VSIX 패키지에는 표기법과 함께 사용자가 모델에서 자료를 편집하고 생성하는 데 도움이 되도록 적용할 수 있는 도구가 포함되어 있습니다.

DSL의 주요 애플리케이션 중 하나는 프로그램 코드, 구성 파일 및 기타 아티팩트 생성입니다. 특히 제품의 여러 변형이 만들어지는 대규모 프로젝트 및 제품 라인에서는 DSL에서 많은 변수 측면을 생성하면 안정성이 크게 향상되고 요구 사항 변경에 매우 신속하게 응답할 수 있습니다.

이 개요의 나머지 내용은 Visual Studio에서 도메인별 언어를 만들고 사용하는 기본 작업을 소개하는 연습입니다.

필수 조건

DSL을 정의하려면 다음 구성 요소를 설치해야 합니다.

구성 요소 Link
비주얼 스튜디오 http://go.microsoft.com/fwlink/?LinkId=185579
Visual Studio SDK https://go.microsoft.com/fwlink/?linkid=2166172
Visual Studio용 SDK 모델링

비고

텍스트 템플릿 변환 구성 요소는 Visual Studio 확장 개발 워크로드의 일부로 자동으로 설치됩니다. Visual Studio 설치 관리자의 개별 구성 요소 탭에서 SDK, 라이브러리 및 프레임워크 범주 아래에 설치할 수도 있습니다. 개별 구성 요소 탭에서 모델링 SDK 구성 요소를 설치합니다.

DSL 솔루션 만들기

새 도메인별 언어를 만들려면 Domain-Specific Language 프로젝트 템플릿을 사용하여 새 Visual Studio 솔루션을 만듭니다.

  1. [파일] 메뉴에서 [새로 만들기]를 가리킨 다음 [프로젝트]를 클릭합니다.

  2. 프로젝트 형식에서 다른 프로젝트 형식 노드를 확장하고 확장성을 클릭합니다.

  3. 도메인-특화 언어 디자이너를 클릭합니다.

    DSL 만들기 대화 상자

  4. 이름 상자에 FamilyTree를 입력합니다. OK를 클릭합니다.

    Domain-Specific 언어 마법사가 열리고 템플릿 DSL 솔루션 목록이 표시됩니다.

    각 템플릿을 클릭하여 설명을 확인합니다.

    템플릿은 유용한 시작점입니다. 각각의 DSL은 사용자의 필요에 맞게 편집할 수 있는 완전한 형태로 제공됩니다. 일반적으로 만들려는 항목에 가장 가까운 템플릿을 선택합니다.

  5. 이 연습에서는 최소 언어 템플릿을 선택합니다.

  6. 적절한 마법사 페이지에서 DSL의 파일 이름 확장명을 입력합니다. DSL 인스턴스를 포함하는 파일이 사용할 확장명입니다.

    • 컴퓨터 또는 DSL을 설치하려는 컴퓨터의 애플리케이션과 연결되지 않은 확장을 선택합니다. 예를 들어 docxhtm 은 허용되지 않는 파일 이름 확장명입니다.

    • 입력한 확장이 DSL로 사용되는 경우 마법사가 경고합니다. 다른 파일 이름 확장명을 사용하는 것이 좋습니다. Visual Studio SDK 실험적 인스턴스를 다시 설정하여 이전 실험적 디자이너를 지울 수도 있습니다. Windows 시작 메뉴에서 Visual Studio 재설정을 입력한 다음, 버전 Visual Studio와 일치하는 Microsoft Visual Studio 실험 인스턴스 다시 설정 명령을 실행합니다.

  7. 다른 페이지를 검사한 다음 마침을 클릭합니다.

    두 개의 프로젝트가 포함된 솔루션이 생성됩니다. Dsl 및 DslPackage라고 합니다. DslDefinition.dsl이라는 다이어그램 파일이 열립니다.

    비고

    두 프로젝트의 폴더에서 볼 수 있는 대부분의 코드는 DslDefinition.dsl에서 생성됩니다. 이러한 이유로 DSL에 대한 대부분의 수정 내용은 이 파일에서 수행됩니다.

이제 사용자 인터페이스는 다음 그림과 유사합니다.

dsl designer

이 솔루션은 도메인 특정 언어를 정의합니다. 자세한 내용은 Domain-Specific Language Tools 사용자 인터페이스 개요를 참조하세요.

DSL 솔루션의 중요한 부분

새 솔루션의 다음 측면을 확인합니다.

  • Dsl\DslDefinition.dsl DSL 솔루션을 만들 때 표시되는 파일입니다. 솔루션의 거의 모든 코드는 이 파일에서 생성되며 DSL 정의에 대한 대부분의 변경 내용은 여기에서 수행됩니다. 자세한 내용은 DSL 정의 다이어그램 작업 작업을 참조하세요.

  • Dsl 프로젝트 이 프로젝트에는 도메인별 언어를 정의하는 코드가 포함되어 있습니다.

  • DslPackage 프로젝트 이 프로젝트에는 Visual Studio에서 DSL 인스턴스를 열고 편집할 수 있는 코드가 포함되어 있습니다.

DSL 실행

DSL 솔루션을 만든 즉시 실행할 수 있습니다. 나중에 DSL 정의를 점진적으로 수정하고 각 변경 후에 솔루션을 다시 실행할 수 있습니다.

DSL을 실험해보려면

  1. 솔루션 탐색기 도구 모음에서 모든 템플릿 변환을 클릭합니다. DslDefinition.dsl에서 대부분의 소스 코드를 다시 생성합니다.

    비고

    DslDefinition.dsl을 변경할 때마다 솔루션을 다시 빌드하기 전에 모든 템플릿 변환을 클릭해야 합니다. 이 단계는 자동화할 수 있습니다. 자세한 내용은 모든 템플릿 변환을 자동화하는 방법을 참조하세요.

  2. F5 키를 누르거나 디버그 메뉴에서 디버깅 시작을 클릭합니다.

    DSL은 Visual Studio의 실험적 인스턴스에 빌드되고 설치됩니다.

    Visual Studio의 실험적 인스턴스가 시작됩니다. 실험적 인스턴스는 Visual Studio 확장이 디버깅을 위해 등록된 레지스트리의 별도 하위 트리에서 설정을 가져옵니다. Visual Studio의 일반 인스턴스에는 등록된 확장에 대한 액세스 권한이 없습니다.

  3. Visual Studio의 실험적 인스턴스에서 솔루션 탐색기에서 Test라는 모델 파일을 엽니다.

    - 또는 -

    디버깅 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 항목을 클릭합니다. 항목 추가 대화 상자에서 DSL의 파일 형식을 선택합니다.

    모델 파일이 빈 다이어그램으로 열립니다.

    도구 상자가 열리고 다이어그램 형식에 적합한 도구가 표시됩니다.

  4. 도구를 사용하여 다이어그램에 셰이프 및 연결선 만들기

    1. 셰이프를 만들려면 예제 셰이프 도구에서 다이어그램으로 끌어다 놓습니다.

    2. 두 도형을 연결하려면 [예제 연결선] 도구를 클릭하고 첫 번째 도형을 클릭한 다음 두 번째 도형을 클릭합니다.

  5. 셰이프의 레이블을 클릭하여 변경합니다.

실험적 Visual Studio는 다음 예제와 유사합니다.

Visual Studio의 도메인별 언어 샘플 트리

모델의 콘텐츠

DSL 인스턴스인 파일의 콘텐츠를 모델이라고 합니다. 모델에는 모델요소와 요소 간의 링크 가 포함됩니다. DSL 정의는 모델에 존재할 수 있는 모델 요소 및 링크의 유형을 지정합니다. 예를 들어 최소 언어 템플릿에서 만든 DSL에는 모델 요소의 유형과 링크 유형이 하나씩 있습니다.

DSL 정의는 모델이 다이어그램에 표시되는 방식을 지정할 수 있습니다. 다양한 셰이프 및 연결선 스타일 중에서 선택할 수 있습니다. 일부 셰이프가 다른 셰이프 내에 표시되도록 지정할 수 있습니다.

모델을 편집하는 동안 탐색기 보기에서 모델을 트리로 볼 수 있습니다. 다이어그램에 셰이프를 추가하면 모델 요소도 탐색기에 표시됩니다. 다이어그램이 없더라도 탐색기를 사용할 수 있습니다.

Visual Studio의 디버깅 인스턴스에서 탐색기를 볼 수 없는 경우 보기 메뉴에서 다른 Windows를 가리킨 다음 언어<탐색기를 클릭합니다>.

DSL의 API

DSL은 DSL의 인스턴스인 모델을 읽고 업데이트할 수 있는 API를 생성합니다. API의 한 애플리케이션은 모델에서 텍스트 파일을 생성하는 것입니다. 자세한 내용은 T4 텍스트 템플릿을 사용하여Design-Time 코드 생성을 참조하세요.

디버깅 솔루션에서 확장명은 ".tt"인 템플릿 파일을 엽니다. 이러한 샘플에서는 모델에서 텍스트를 생성하고 DSL의 API를 테스트할 수 있는 방법을 보여 줍니다. 샘플 중 하나는 Visual Basic으로 작성되고 다른 하나는 Visual C#으로 작성됩니다.

각 템플릿 파일 아래에 생성되는 파일이 있습니다. 솔루션 탐색기에서 템플릿 파일을 확장하고 생성된 파일을 엽니다.

템플릿 파일에는 모델의 모든 요소를 나열하는 짧은 코드 세그먼트가 포함되어 있습니다.

생성된 파일에는 결과가 포함됩니다.

모델 파일을 변경하면 파일을 다시 생성한 후 생성된 파일에 해당 변경 내용이 표시됩니다.

모델 파일을 변경한 후 텍스트 파일을 다시 생성하려면

  1. Visual Studio의 실험적 인스턴스에서 모델 파일을 저장합니다.

  2. 각 .tt 파일의 파일 이름 매개 변수가 실험에 사용하는 모델 파일을 참조하는지 확인합니다. .tt 파일을 저장합니다.

  3. 솔루션 탐색기의 도구 모음에서 모든 템플릿 변환을 클릭합니다.

    - 또는 -

    다시 생성하려는 템플릿을 마우스 오른쪽 단추로 클릭한 다음 사용자 지정 도구 실행을 클릭합니다.

프로젝트에 원하는 수의 텍스트 템플릿 파일을 추가할 수 있습니다. 각 템플릿은 하나의 결과 파일을 생성합니다.

비고

DSL 정의를 변경하면 업데이트하지 않는 한 샘플 텍스트 템플릿 코드가 작동하지 않습니다.

자세한 내용은 Domain-Specific 언어에서 코드 생성 및 Domain-Specific 언어사용자 지정 코드 작성을 참조하세요.

DSL 사용자 지정

DSL 정의를 수정하려면 실험적 인스턴스를 닫고 주 Visual Studio 인스턴스에서 정의를 업데이트합니다.

비고

DSL 정의를 수정한 후에는 이전 버전을 사용하여 만든 테스트 모델의 정보가 손실될 수 있습니다. 예를 들어 디버깅 솔루션에는 일부 셰이프와 연결선이 포함된 Sample이라는 파일이 포함되어 있습니다. DSL 정의를 개발하기 시작하면 DSL 정의가 표시되지 않으며 파일을 저장할 때 손실됩니다.

DSL에 대한 다양한 확장을 만들 수 있습니다. 다음 예제에서는 가능성을 보여 줍니다.

각 변경 후 DSL 정의를 저장하고 솔루션 탐색기에서 모든 템플릿 변환을 클릭한 다음 F5 키를 눌러 변경된 DSL을 실험합니다.

형식 및 도구 이름 바꾸기

기존 도메인 클래스 및 관계의 이름을 바꿉니다. 예를 들어 최소 언어 템플릿에서 만든 Dsl 정의부터 시작하여 다음 이름 바꾸기 작업을 수행하여 DSL이 패밀리 트리를 나타내도록 할 수 있습니다.

도메인 클래스, 관계 및 도구의 이름을 바꾸려면

  1. DslDefinition 다이어그램에서 ExampleModel 의 이름을 FamilyTreeModel, ExampleElement 에서 Person, Targets to ParentsSources to Children으로 바꿉니다. 각 레이블을 클릭하여 변경할 수 있습니다.

    DSL 정의 다이어그램 - 패밀리 트리 모델

  2. 요소 및 커넥터 도구의 이름을 바꿉니다.

    1. 솔루션 탐색기 아래의 탭을 클릭하여 DSL 탐색기 창을 엽니다. 볼 수 없는 경우 보기 메뉴에서 다른 Windows 를 가리킨 다음 DSL 탐색기를 클릭합니다. DSL 탐색기는 DSL 정의 다이어그램이 활성 창인 경우에만 표시됩니다.

    2. DSL 탐색기 및 속성을 동시에 볼 수 있도록 속성 창을 열고 위치를 지정합니다.

    3. DSL 탐색기에서 편집기, 도구 상자 탭, <DSL>도구를 확장합니다.

    4. ExampleElement를 클릭합니다. 요소를 만드는 데 사용되는 도구 상자 항목입니다.

    5. 속성 창에서 Name 속성을 Person으로 변경합니다.

      Caption 속성도 변경됩니다.

    6. 동일한 방식으로 ExampleConnector 도구의 이름을 ParentLink로 변경합니다. Name 속성의 복사본이 아니도록 Caption 속성을 변경합니다. 예를 들어 부모 링크를 입력합니다.

  3. DSL을 다시 빌드합니다.

    1. DSL 정의 파일을 저장합니다.

    2. 솔루션 탐색기의 도구 모음에서 모든 템플릿 변환 클릭

    3. F5 키를 누릅니다. Visual Studio의 실험적 인스턴스가 나타날 때까지 기다립니다.

  4. Visual Studio의 실험적 인스턴스에 있는 디버깅 솔루션에서 테스트 모델 파일을 엽니다. 도구 상자에서 요소를 끌어서 놓습니다. DSL 탐색기의 도구 캡션 및 형식 이름이 변경되었습니다.

  5. 모델 파일을 저장합니다.

  6. .tt 파일을 열고 이전 형식 및 속성 이름의 항목을 새 이름으로 바꿉니다.

  7. .tt 파일에 지정된 파일 이름이 테스트 모델을 지정하는지 확인합니다.

  8. .tt 파일을 저장합니다. 생성된 파일을 열어 .tt 파일에서 코드를 실행한 결과를 확인합니다. 올바른지 확인합니다.

클래스에 도메인 속성 추가

도메인 클래스에 속성을 추가합니다(예: 사람의 출생 및 사망 연도를 나타내는 경우).

다이어그램에 새 속성을 표시하려면 모델 요소를 표시하는 셰이프에 데코레이터 를 추가해야 합니다. 또한 속성을 데코레이터에 매핑해야 합니다.

속성을 추가하고 표시하려면
  1. 속성을 추가합니다.

    1. DSL 정의 다이어그램에서 Person 도메인 클래스를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 Domain Property를 클릭합니다.

    2. 출생 및 사망과 같은 새 속성 이름 목록을 입력합니다. 각 후 Enter 키를 누릅니다.

  2. 셰이프의 속성을 표시하는 데코레이터를 추가합니다.

    1. Person 도메인 클래스에서 다이어그램의 다른 쪽으로 확장되는 회색 선을 따릅니다. 다이어그램 요소 맵입니다. 도메인 클래스를 셰이프 클래스에 연결합니다.

    2. 이 셰이프 클래스를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 텍스트 데코레이터를 클릭합니다.

    3. BirthDecorator 및 DeathDecorator와 같은 이름의 데코레이터 2개를 추가합니다.

    4. 새 데코레이터를 각각 선택하고 속성 창에서 위치 필드를 설정합니다. 그러면 셰이프에 도메인 속성 값이 표시되는 위치가 결정됩니다. 예를 들어 InnerBottomLeftInnerBottomRight를 설정합니다.

      구획 셰이프 정의

  3. 데코레이터를 속성에 매핑합니다.

    1. DSL 세부 정보 창을 엽니다. 일반적으로 출력 창 옆의 탭에 있습니다. 볼 수 없는 경우 보기 메뉴에서 다른 창을 가리킨 다음 DSL 세부 정보를 클릭합니다.

    2. DSL 정의 다이어그램에서 Person 도메인 클래스를 셰이프 클래스에 연결하는 선을 클릭합니다.

    3. DSL 세부 정보의데코레이터 맵 탭에서 매핑되지 않은 데코레이터의 확인란을 클릭합니다. 표시 속성에서 매핑할 도메인 속성을 선택합니다. 예를 들어 BirthDecoratorBirth에 매핑합니다.

  4. DSL을 저장하고 모든 템플릿 변환을 클릭한 다음 F5 키를 누릅니다.

  5. 샘플 모델 다이어그램에서 선택한 위치를 클릭하고 값을 입력할 수 있는지 확인합니다. 또한 사람 셰이프를 선택하면 속성 창에 출생 및 사망이라는 새 속성이 표시됩니다.

  6. .tt 파일에서 각 사용자의 속성을 가져오는 코드를 추가할 수 있습니다.

    패밀리 트리 다이어그램, 도구 상자 및 탐색기

새 클래스 정의

모델에 도메인 클래스 및 관계를 추가할 수 있습니다. 예를 들어 마을을 나타내는 새 클래스를 만들고 한 사람이 마을에 거주했음을 나타내는 새 관계를 만들 수 있습니다.

모델 다이어그램에서 다른 형식을 구분하기 위해 도메인 클래스를 다양한 종류의 셰이프 또는 다른 기하 도형 및 색이 있는 셰이프에 매핑할 수 있습니다.

새 도메인 클래스를 추가하고 표시하려면
  1. 도메인 클래스를 추가하고 모델 루트의 자식으로 만듭니다.

    1. DSL 정의 다이어그램에서 관계 포함 도구를 클릭하고 루트 클래스 FamilyTreeModel을 클릭한 다음 다이어그램의 빈 부분을 클릭합니다.

      포함 관계가 있는 FamilyTreeModel에 연결된 새 도메인 클래스가 나타납니다.

      이름(예: Town)을 설정합니다.

      비고

      모델의 루트를 제외한 모든 도메인 클래스는 하나 이상의 포함 관계의 대상이거나 포함 대상인 클래스에서 상속되어야 합니다. 이러한 이유로 관계 포함 도구를 사용하여 도메인 클래스를 만드는 것이 편리합니다.

    2. 새 클래스에 도메인 속성을 추가합니다(예: Name).

  2. Person과 Town 간에 참조 관계를 추가합니다.

    1. 참조 관계 도구를 클릭하고[ 사람]을 클릭한 다음 [타운]을 클릭합니다.

      DSL 정의 조각: 패밀리 트리 루트

      비고

      참조 관계는 모델 트리의 한 부분에서 다른 부분으로의 상호 참조를 나타냅니다.

  3. 모델 다이어그램에서 마을을 나타내는 셰이프를 추가합니다.

    1. 도구 상자에서 다이어그램으로 기하 도형 을 끌어서 이름을 바꿉니다(예: TownShape).

    2. 속성 창에서 도형의 외관 필드를 설정합니다. 새 도형의 필드에는 채우기 색과 기하 도형이 포함됩니다.

    3. 데코레이터를 추가하여 마을 이름을 표시하고 이름을 NameDecorator로 바꿉니다. Position 속성을 설정합니다.

  4. Town 도메인 클래스를 TownShape에 매핑합니다.

    1. 다이어그램 요소 맵 도구를 클릭한 다음 Town 도메인 클래스를 클릭한 다음 TownShape 셰이프 클래스를 클릭합니다.

    2. 지도 커넥터가 선택된 DSL 세부 정보 창의 데코레이터 맵 탭에서 NameDecorator를 선택하고 표시 속성을 이름으로 설정합니다.

  5. 개인과 마을 간의 관계를 표시하는 커넥터를 만듭니다.

    1. 도구 상자에서 다이어그램으로 연결자를 끕니다. 이름을 바꾸고 모양 속성을 설정합니다.

    2. 다이어그램 요소 맵 도구를 사용하여 새 커넥터를 Person과 Town 간의 관계에 연결합니다.

      셰이프 맵이 추가된 패밀리 트리 정의

  6. 새 타운을 만들기 위한 요소 도구를 만듭니다.

    1. DSL 탐색기에서 편집기도구 상자 탭을 확장합니다.

    2. <DSL을 마우스 오른쪽 버튼으로 클릭한>새 요소 추가 도구를 클릭하세요.

    3. 새 도구의 Name 속성을 설정하고 해당 Class 속성을 Town으로 설정합니다.

    4. 도구 상자 아이콘 속성을 설정합니다. [...]을 클릭하고 파일 이름 필드에서 아이콘 파일을 선택합니다.

  7. 마을과 사람 사이의 연결을 만들기 위한 커넥터 도구를 만듭니다.

    1. DSL<을 마우스> 오른쪽 단추로 클릭한 다음 새 커넥터 도구 추가를 클릭합니다.

    2. 새 도구의 Name 속성을 설정합니다.

    3. ConnectionBuilder 속성에서 Person-Town 관계의 이름을 포함하는 작성기를 선택합니다.

    4. 도구 상자 아이콘을 설정합니다.

  8. DSL 정의를 저장하고 모든 템플릿 변환을 클릭한 다음 F5 키를 누릅니다.

  9. Visual Studio의 실험적 인스턴스에서 테스트 모델 파일을 엽니다. 새로운 도구를 사용하여 마을과 마을 사이, 그리고 마을과 사람들 사이의 링크를 만드세요. 올바른 유형의 요소 간에만 링크를 만들 수 있습니다.

  10. 각 사용자가 살고 있는 마을을 나열하는 코드를 만듭니다. 텍스트 템플릿은 이러한 코드를 실행할 수 있는 위치 중 하나입니다. 예를 들어 디버깅 솔루션에서 기존 Sample.tt 파일을 수정하여 다음 코드를 포함할 수 있습니다.

    <#@ template inherits="Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation" debug="true" #>
    <#@ output extension=".txt" #>
    <#@ FamilyTree processor="FamilyTreeDirectiveProcessor" requires="fileName='Sample.ftree'" #>
    
    <#
      foreach (Person person in this.FamilyTreeModel.People)
      {
    #>
        <#= person.Name #><#if (person.Town != null) {#> of <#= person.Town.Name #> <#}#>
    
    <#
          foreach (Person child in person.Children)
      {
    #>
                <#= child.Name #>
    <#
      }
      }
    #>
    
    

    *.tt 파일을 저장하면 사용자 및 해당 거주지 목록이 포함된 자회사 파일이 만들어지게 됩니다. 자세한 내용은 Domain-Specific 언어에서 코드 생성을 참조하세요.

유효성 검사 및 명령

유효성 검사 제약 조건을 추가하여 이 DSL을 추가로 개발할 수 있습니다. 이러한 제약 조건은 모델이 올바른 상태인지 확인하는 정의할 수 있는 메서드입니다. 예를 들어 자녀의 생년월일이 부모의 생년월일보다 늦도록 제약 조건을 정의할 수 있습니다. DSL 사용자가 제약 조건을 위반하는 모델을 저장하려고 하면 유효성 검사 기능에 경고가 표시됩니다. 자세한 내용은 Domain-Specific 언어의 유효성 검사를 참조하세요.

사용자가 호출할 수 있는 메뉴 명령을 정의할 수도 있습니다. 명령은 모델을 수정할 수 있습니다. Visual Studio의 다른 모델 및 외부 리소스와 상호 작용할 수도 있습니다. 자세한 내용은 방법: 표준 메뉴 명령 수정을 참조하세요.

DSL 배포

다른 사용자가 도메인별 언어를 사용할 수 있도록 VSIX(Visual Studio 확장) 파일을 배포합니다. DSL 솔루션을 빌드할 때 만들어집니다.

솔루션의 bin 폴더에서 .vsix 파일을 찾습니다. 설치하려는 컴퓨터에 복사합니다. 해당 컴퓨터에서 VSIX 파일을 두 번 클릭합니다. DSL은 해당 컴퓨터의 모든 Visual Studio 인스턴스에서 사용할 수 있습니다.

Visual Studio의 실험적 인스턴스를 사용할 필요가 없도록 동일한 절차를 사용하여 자신의 컴퓨터에 DSL을 설치할 수 있습니다.

자세한 내용은 Domain-Specific 언어 솔루션 배포를 참조하세요.

이전 실험적 DSL 제거

더 이상 원하지 않는 실험적 DSL을 만든 경우 Visual Studio 실험적 인스턴스를 다시 설정하여 컴퓨터에서 제거할 수 있습니다.

이렇게 하면 모든 실험적 DSL 및 기타 실험적 Visual Studio 확장이 컴퓨터에서 제거됩니다. 디버깅 모드에서 실행된 확장입니다.

이 절차에서는 VSIX 파일을 실행하여 완전히 설치된 DSL 또는 기타 Visual Studio 확장을 제거하지 않습니다.

Visual Studio 실험적 인스턴스를 다시 설정하려면

  1. Windows 시작 메뉴에서 Visual Studio 재설정을 입력한 다음, 버전 Visual Studio와 일치하는 Microsoft Visual Studio 실험 인스턴스 다시 설정 명령을 실행합니다.

  2. 계속 사용하려는 실험적 DSL 또는 기타 실험적 Visual Studio 확장을 다시 빌드합니다.