2010-08-03 5 views
4

F #을 설치 한 경우에도 Visual Studio 2008 (및 2010)은 C#, VB.NET 및 C++ 용 추가 기능 프로젝트 템플릿 만 제공합니다.F # 기반 Visual Studio 추가 기능을 만드는 방법은 무엇입니까?

그래서 F # 기반 추가 기능을 만드는 방법은 무엇입니까?

IDTExtensibility2를 구현하는 새로운 클래스로 F # 클래스 라이브러리 프로젝트를 만들고 올바른 참조 (EnvDTE, Extensibility, ...)를 설정하고 C# 추가 기능 (주로 명령 디버깅을위한 라인) .AddIn 매니페스트 파일을 손으로 만들지 만 성공하지는 않습니다. VS가 시작되면 내 추가 기능이 사용 가능한 목록에 표시되지 않습니다.

누락 된 단계는 무엇입니까? 어떤 종류의 COM 등록은 어딘가에 있습니까?

+0

[VsVim] (http://github.com/jaredpar/VsVim)은 다른 누군가의 방식을보고 싶다면 F #으로 작성된 훌륭한 VS 추가 기능입니다. –

+0

사실, C# 프로젝트를 플러그인의 루트로 사용하고 있지만 나머지 어셈블리는 F # –

답변

1

마지막으로 잘못된 점을 발견했습니다. AddIn 디렉토리에 .AddIn 파일을 넣는 것을 잊었습니다 (C# 마법사가 자동으로이 작업을 수행함).

그래서, 비주얼 스튜디오의 F 번호를 기반으로 추가 기능을 만들 수 있습니다 :

  • 프로젝트 (주로 EnvDTE,로드 EnvDTE80, EnvDTE90에 몇 참조 어셈블리를 추가 새로운 F # 클래스 라이브러리 프로젝트를 만들고, 확장 성)
  • 은 F # 프로젝트에
  • 복사 .AddIn 매니페스트 파일을 IDTExtensibility2를
  • 복사는 C#의 디버깅 속성을 구현하는 새로운 클래스를 기반으로 추가 기능 프로젝트를 만들고 수정 된 FY 프로젝트에 따라 * .. 그리고 사용자 세션에 대한 AddIn 디렉토리에 새 파일을 복사하는 것을 잊지 마세요
  • enjoy!
1

필자는이 정확한 시나리오를 시도하지는 않았지만 가장 좋은 행운을 얻었습니다. C# 템플릿으로 시작하고 .csproj를 .fsproj로 바꾸고 F #에 <Import>을 변경하고 <Compile>의 F # 코드를 사용하여 C# 코드를 만들고 거기에서부터 시작하십시오.

템플릿에는 빌드/배포를 위해 여러 가지 중요한 로직이 포함되어 있으므로 C#의 작업 템플릿으로 시작하고 F #으로 수정하십시오.

관련 문제