2017-03-08 1 views
5

빌드 서버에서 F # 4.1 SDK를 설치하고 난 (에서 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\FSharp에서 MSBuild를 목표 내가 비주얼 스튜디오 2017에 대한 빌드 도구를 설치 한 C:\Program Files (x86)\Microsoft SDKs\F#\4.1내 PC에 F 번호를 지원하는 비주얼 스튜디오 2017을 설치 한

에서 F # 4.1 SDK를 https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15)하지만 F # SDK를 설치할 수있는 옵션이 없으므로 MSBuild 15를 사용하여 F # 프로젝트를 만들지 못합니다.

Visual Studio를 설치하지 않고 F # 4.1 SDK를 어떻게 설치할 수 있습니까?

답변

2

이 SDK까지 짧은 기간 수정 프로그램을 설치 할 수있다 "배포 FSharp 도구 MSI 2553은 MSDN 번호에" 별도로 NuGet 패키지 폴더에서 Microsoft.FSharp.Targets 파일을 찾을 프로젝트 파일에 지시문을 추가하는 것입니다.

<Choose> 
    <When Condition="$(TargetFSharpCoreVersion) &gt;= 4.3.0.0 AND $(TargetFSharpCoreVersion) &lt; 4.3.1.0 "> 
     <PropertyGroup> 
     <FSharpTargetsPath>$(MSBuildProgramFiles32)\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath> 
     </PropertyGroup> 
    </When> 
    <When Condition="$(TargetFSharpCoreVersion) &gt;= 4.3.1.0 AND $(TargetFSharpCoreVersion) &lt; 4.4.0.0 "> 
     <PropertyGroup> 
     <FSharpTargetsPath>$(MSBuildProgramFiles32)\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath> 
     </PropertyGroup> 
    </When> 
    <When Condition="$(TargetFSharpCoreVersion) &gt;= 4.4.0.0 AND $(TargetFSharpCoreVersion) &lt; 4.4.1.0 "> 
     <PropertyGroup> 
     <FSharpTargetsPath>$(MSBuildProgramFiles32)\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath> 
     </PropertyGroup> 
    </When> 
    <Otherwise> 
     <PropertyGroup> 
     <FSharpTargetsPath>$(MSBuildProgramFiles32)\Microsoft SDKs\F#\4.1\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath> 
     </PropertyGroup> 
    </Otherwise> 
</Choose> 
:

<Import Project="..\packages\FSharp.Compiler.Tools.4.1.17\build\FSharp.Compiler.Tools.props" Condition="Exists('..\packages\FSharp.Compiler.Tools.4.1.17\build\FSharp.Compiler.Tools.props')" /> 

하는 프로젝트 파일의이 부분을 교체 :의이 지침을 가지고로는 VS.NET 2017의 새로운 F # 프로젝트를 사용하여 확인

: 다음 단계는 내가이 문제를 해결하는 데 걸린 있습니다 이 XML로

:

<Choose> 
    <When Condition="$(TargetFSharpCoreVersion) &gt;= 4.3.0.0 AND $(TargetFSharpCoreVersion) &lt; 4.3.1.0 "> 
     <PropertyGroup> 
     <FSharpTargetsPath>$(MSBuildProgramFiles32)\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath> 
     </PropertyGroup> 
    </When> 
    <When Condition="$(TargetFSharpCoreVersion) &gt;= 4.3.1.0 AND $(TargetFSharpCoreVersion) &lt; 4.4.0.0 "> 
     <PropertyGroup> 
     <FSharpTargetsPath>$(MSBuildProgramFiles32)\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath> 
     </PropertyGroup> 
    </When> 
    <When Condition="$(TargetFSharpCoreVersion) &gt;= 4.4.0.0 AND $(TargetFSharpCoreVersion) &lt; 4.4.1.0 "> 
     <PropertyGroup> 
     <FSharpTargetsPath>$(MSBuildProgramFiles32)\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath> 
     </PropertyGroup> 
    </When> 
    <Otherwise> 
     <PropertyGroup> 
     <FSharpTargetsPath>$(MSBuildProgramFiles32)\Microsoft SDKs\F#\4.1\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath> 
     </PropertyGroup> 
    </Otherwise> 
    </Choose> 
    <!-- This is needed for TeamCity where F# SDK is only available via NuGet right now - hopefully can be removed at some point once the SDK is available for install --> 
    <PropertyGroup Condition="!Exists('$(FSharpTargetsPath)')"> 
    <FSharpTargetsPath>$(FscToolPath)\Microsoft.FSharp.Targets</FSharpTargetsPath> 
    </PropertyGroup> 

당신이 NuGet 패키지 PRI 단계 복원 한 서버를 구축 확인 FSharp.Compiler.Tools 및 FSharp.Core 다음과 같이 작동

그 이유는 다음과 같습니다 : 또는 빌드를 수행에

는 파일이 포함 패키지 확인이는 FSharpTargetsPath가 존재하는지 확인 과를 사용하지 않을 경우 packages 폴더를 소스로 사용하십시오. 패키지 폴더를 항상 사용하고 싶지 않은 경우 사용자 컴퓨터의 새로운 체크 아웃에서 패키지를 사용할 수 없으며 빌드가 실패합니다. 빌드 서버에서이 작업을 수행하려면 빌드를 수행하기 전에 NuGet 패키지를 복원하는 단계가 있다고 가정합니다.

+0

우리를 위해 일하십시오. Fsharp.Compiler.Tools nuget을 추가하는 것으로 충분했습니다. 그것은 import 문을 자동으로 추가하고 필요한 변경 사항은 조건부 가져 오기 (코드 조각의 마지막 부분) –

1

새로운 것들이 아직 업데이트되지 않은 것 같습니다.

http://fsharp.org/use/windows/

(4.0)