Visual Studio에서 Visual F#을 사용하여 개발

이 문서에는 F# 개발을 위한 Visual Studio 기능 관련 정보가 포함되어 있습니다.

F# 설치 지원

Visual Studio에서 F#을 사용하여 개발하려면 .NET 데스크톱 개발이 아직 없는 경우 먼저 설치합니다. 도구가>도구 및 기능 가져오기를 선택하면 열리는 Visual Studio 설치 관리자를 통해 Visual Studio 워크로드를 설치합니다.

.NET desktop development workload in Visual Studio

F# 프로젝트 기능

Visual Studio의 F#에서 다양한 프로젝트 및 항목 템플릿을 사용할 수 있습니다. 다음 이미지에는 .NET Core 및 .NET Standard에 대한 F# 프로젝트 템플릿 중 일부가 나와 있습니다.

F# project templates in Visual Studio

다음 이미지는 몇 가지 F# 항목 템플릿입니다.

F# item templates in Visual Studio

데이터 액세스를 위한 항목 템플릿에 대한 자세한 내용은 F# 형식 공급자를 참조하세요.

다음 표에 F#에 대한 프로젝트 속성의 기능이 요약되어 있습니다.

프로젝트 설정 F#에서 지원되는지 여부 주의
리소스 파일
빌드, 디버그 및 참조 설정
다중 대상 지정
아이콘 및 매니페스트 아니요 컴파일러 명령줄 옵션을 통해 사용할 수 있습니다.
ASP.NET 클라이언트 서비스 아니요
ClickOnce 아니요 해당하는 경우에 다른 .NET 언어에서 클라이언트 프로젝트를 사용합니다.
강력한 이름 지정 아니요 컴파일러 명령줄 옵션을 통해 사용할 수 있습니다.
어셈블리 게시 및 버전 관리 아니요
코드 분석 아니요 코드 분석 도구를 수동으로 또는 빌드 후 명령의 일부로 실행할 수 있습니다.
보안(신뢰 수준 변경) 아니요

프로젝트 디자이너

프로젝트 디자이너는 관련된 기능을 그룹화하는 여러 프로젝트 속성 페이지로 구성됩니다. F# 프로젝트에 사용할 수 있는 페이지는 주로 다른 언어에 사용 가능한 하위 집합이며 다음 표에 설명되어 있습니다. 링크는 해당하는 C# 프로젝트 디자이너 페이지에 제공됩니다.

프로젝트 디자이너 페이지 관련 링크 설명
애플리케이션 애플리케이션 페이지, 프로젝트 디자이너 라이브러리 또는 실행 파일을 만드는지 여부, 애플리케이션이 대상으로 지정하는 .NET의 버전 및 애플리케이션이 사용하는 리소스 파일이 저장되는 위치에 대한 정보와 같은 애플리케이션 수준 설정 및 속성을 지정할 수 있습니다.
빌드 프로젝트 디자이너, 빌드 페이지 코드가 컴파일되는 방식을 제어할 수 있습니다.
빌드 이벤트 빌드 이벤트 페이지, 프로젝트 디자이너 컴파일 전후에 실행할 명령을 지정할 수 있습니다.
디버그 프로젝트 디자이너, 디버그 페이지 디버깅하는 동안 애플리케이션 실행 방식을 제어할 수 있습니다. 사용할 명령 및 애플리케이션의 시작 디렉터리, 네이티브 코드 및 SQL과 같이 활성화하려는 특수한 디버깅 모드가 포함됩니다.
패키지(.NET SDK에만 해당) 해당 없음 NuGet 패키지로 게시하려는 경우 NuGet 패키지 메타데이터를 정의할 수 있습니다.
참조 경로 프로젝트에서 참조 관리 코드가 사용하는 어셈블리를 검색할 위치를 지정할 수 있습니다.
리소스(.NET SDK에만 해당) 해당 없음 기본 리소스 파일을 생성하고 관리할 수 있습니다.

F# - 특정 설정

다음 표에는 F#에 관련된 설정이 요약되어 있습니다.

프로젝트 디자이너 페이지 설정 설명
빌드 Tail 호출 생성 선택하는 경우 MSIL(Microsoft Intermediate Language) 명령을 사용할 수 있습니다. 그러면 스택 프레임을 tail 재귀 함수에 다시 사용할 수 있습니다. --tailcalls 컴파일러 옵션과 동일합니다.
빌드 다른 플래그 추가 컴파일러 명령줄 옵션을 지정할 수 있습니다.

코드 및 텍스트 편집기 기능

Visual Studio 코드 및 텍스트 편집기의 다음 기능은 F#에서 지원됩니다.

기능 설명 F#에서 지원되는지 여부
자동 주석 코드의 섹션을 주석으로 처리하거나 주석 처리를 제거할 수 있습니다.
서식 자동 지정 표준 들여쓰기 및 스타일을 사용하여 코드의 서식을 다시 지정합니다. 아니요
책갈피 편집기에서 위치를 저장할 수 있습니다.
들여쓰기 변경 선택한 줄을 들여쓰거나 내어씁니다.
스마트 들여쓰기 F# 범위 지정 규칙에 따라 커서를 자동으로 들여쓰고 들여쓰기를 취소합니다.
텍스트 찾기 및 바꾸기 파일, 프로젝트 또는 솔루션에서 검색하고 잠재적으로 텍스트를 변경할 수 있습니다.
.NET API에 대한 정의로 이동 .NET API에 커서를 놓으면 .NET 메타데이터에서 생성된 코드를 보여 줍니다. 아니요
사용자 정의 API에 대한 정의로 이동 지정한 프로그램 엔터티에 커서를 놓으면 엔터티가 정의된 위치의 코드에서 해당 위치로 커서를 이동합니다.
줄 이동 줄 번호에 따라 파일에서 특정 줄로 이동할 수 있습니다.
파일의 위쪽에 있는 탐색 모음 함수 이름과 같은 코드에 있는 위치로 점프할 수 있습니다.
블록 구조 가이드 미리 보기에 대해 가리킬 수 있는 F# 범위를 나타내는 지침을 보여 줍니다.
개요 더 간단한 보기를 만드는 코드의 섹션을 축소할 수 있습니다.
탭으로 바꿈 공백을 탭으로 변환합니다.
유형 색 지정 정의된 형식 이름을 특별한 색으로 표시합니다.
빠른 찾기. 빠른 찾기, 찾기 및 바꾸기 창을 참조하세요. 파일 또는 프로젝트에서 검색할 수 있습니다.
Ctrl+키를 누른 채로 정의로 이동을 클릭 Ctrl 키를 누른 채로 F# 기호를 클릭하면 정의로 이동을 호출할 수 있습니다.
QuickInfo에서 정의로 이동 도구 설명 내에서 클릭할 수 있는 기호로, 정의로 이동을 호출합니다.
전체로 이동 Ctrl+T를 통해 모든 F# 구문에 대한 전역, 유사 항목 일치를 탐색할 수 있습니다.
인라인 이름 바꾸기 기호 인라인의 모든 항목의 이름을 바꿉니다.
모든 참조 찾기 코드 베이스에서 기호의 모든 발생을 찾습니다.
이름 코드 수정 사항 간소화 F# 기호에 대한 불필요한 한정자를 제거합니다.
사용하지 않는 open 문 코드 수정 제거 문서에서 모든 불필요한 open 문을 제거합니다.
사용하지 않는 값 코드 수정 사용하지 않는 식별자의 이름을 바꾸는 것을 밑줄로 제안합니다.

Visual Studio의 코드 편집 및 텍스트 편집기의 기능에 대한 일반적인 정보는 편집기에서 코드 작성을 참조하세요.

IntelliSense 기능

다음 표에는 F#에서 지원 및 지원되지 않는 IntelliSense 기능이 요약되어 있습니다.

기능 설명 F#에서 지원되는지 여부
인터페이스 자동 구현 인터페이스 메서드에 대한 코드 스텁을 생성합니다.
코드 조각 일반적인 코딩 구문의 라이브러리에서 항목으로 코드를 삽입합니다. 아니요
단어 자동 완성 입력할 때 단어와 이름을 완성시켜 입력을 저장합니다.
자동 완성 사용하도록 설정하면 사용자가 입력할 때 단어 자동 완성 기능이 사용자가 하나를 선택하거나 Ctrl+스페이스바를 누를 때까지 기다리지 않고 첫 번째 일치 항목을 선택합니다.
열려 있지 않은 네임스페이스의 기호에 대한 완성 제공 자동 완성 기능을 사용하면 열려 있지 않은 네임스페이스에 상주하는 일치하는 기호가 제안되어 선택하는 경우 해당하는 open 문으로 완성됩니다.
코드 요소 생성 다양한 구문에 대한 스텁 코드를 생성할 수 있습니다. 아니요
멤버 목록 멤버 액세스 연산자(.)을 입력하면 형식의 멤버가 표시됩니다.
Usings/Open 구성 C#의 using 문 또는 F#의 open 지시문에 의해 참조되는 네임스페이스를 구성합니다. 아니요
매개 변수 정보 함수 호출을 입력할 때 매개 변수에 대한 유용한 정보를 표시합니다.
요약 정보 코드의 식별자에 대한 전체 선언을 표시합니다.
자동 중괄호 완료 트랜잭션 방식으로 자동으로 F# 중괄호 유사 구문을 생성을 완료합니다.

IntelliSense에 대한 일반적인 정보는 IntelliSense 사용을 참조하세요.

디버깅 기능

다음 표에는 F# 코드를 디버깅할 때 사용할 수 있는 기능이 요약되어 있습니다.

기능 설명 F#에서 지원되는지 여부
자동 창 자동 또는 임시 변수를 보여 줍니다. 아니요
중단점 디버깅하는 동안 특정 지점에서 코드 실행을 일시 중지할 수 있습니다.
조건부 중단점 실행을 일시 중지할지 여부를 결정하는 조건을 테스트하는 중단점을 설정합니다.
편집하며 계속하기 실행 중인 프로그램을 디버깅할 때 디버거를 중지했다가 다시 시작하지 않으면서 코드를 수정 및 컴파일할 수 있습니다. 아니요
식 계산기 런타임에서 코드를 평가하고 실행합니다. 아니요. 단, C# 식 계산기는 사용할 수 있지만 C# 구문을 사용해야 합니다.
기록 디버깅 이전에 실행된 코드를 시작할 수 있습니다.
지역 창 로컬로 정의된 값 및 변수를 보여 줍니다.
커서까지 실행 커서를 포함하는 줄에 도달할 때까지 코드를 실행할 수 있습니다.
한 단계씩 코드 실행 실행을 발전시키고 함수 호출으로 이동할 수 있습니다.
프로시저 단위 실행 현재 스택 프레임에서 실행하면서 지난 함수 호출로 이동할 수 있습니다.

Visual Studio 디버거에 대한 일반적인 정보는 Visual Studio의 디버깅을 참조하세요.

추가 도구

다음 표에는 Visual Studio 도구의 F#을 위한 지원이 요약되어 있습니다.

도구 설명 F#에서 지원되는지 여부
호출 계층 구조 코드에서 함수 호출의 중첩된 구조를 표시합니다. 아니요
코드 메트릭 줄 수와 같은 코드에 대한 정보를 수집합니다. 아니요
클래스 뷰 프로젝트에서 코드의 형식 기반 보기를 제공합니다. 아니요
오류 목록 창 코드의 오류 목록을 보여 줍니다.
F# Interactive F# 코드를 입력(또는 복사 및 붙여넣기)하고, 즉시 실행하여 프로젝트를 독립적으로 빌드할 수 있습니다. F# 대화형 창은 REPL(Read, Evaluate, Print Loop)입니다.
개체 브라우저 어셈블리에서 형식을 볼 수 있습니다. 컴파일된 어셈블리에 나타나는 대로 F# 형식은 사용자가 작성한 대로 정확하게 나타나지 않습니다. F# 형식의 컴파일된 표현을 통해 탐색할 수는 있지만, F#에서 나타나는 대로 형식을 볼 수는 없습니다.
출력 창 빌드 출력을 표시합니다.
성능 분석 코드의 성능을 측정하기 위한 도구를 제공합니다.
속성 창 포커스가 있는 개발 환경에서 개체의 속성 편집을 표시하고 사용하도록 설정합니다.
서버 탐색기 다양한 서버 리소스와 상호 작용하는 방법을 제공합니다.
솔루션 탐색기 프로젝트 및 파일을 보고 관리할 수 있습니다.
작업 목록 코드와 관련된 작업 항목을 관리할 수 있습니다. 아니요
테스트 프로젝트 코드를 테스트하는 데 도움이 되는 기능을 제공합니다. 아니요
도구 상자 텍스트 또는 코드의 섹션 및 컨트롤과 같이 끌기 가능한 개체를 포함하는 탭을 표시합니다.

참고 항목