2017-03-08 5 views
5

ビルドサーバー上のF#4.1 SDKをインストールし、私は(からC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\FSharpでMSBuildのターゲットと私は、Visual Studio 2017用のビルドツールをインストールしているC:\Program Files (x86)\Microsoft SDKs\F#\4.1私は自分のPC上のF#をサポートしてVisual Studioの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をインストールすることができるまでプロジェクトファイルにディレクティブを追加して、Microsoft.FSharp.TargetsファイルのNuGetパッケージフォルダを表示します。

<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')" /> 

は、プロジェクトファイルのこのセクションを置き換えます:

<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> 
をそのこのディレクティブを持っているよう

は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が存在するかどうかをチェックし、使用しない場合パッケージフォルダをソースとして使用します。常にパッケージフォルダを使用したくない場合は、ユーザーマシン上の新しいチェックアウトでパッケージを使用できず、ビルドが失敗します。これをビルドサーバー上で動作させるには、ビルドを行う前にNuGetパッケージを復元するステップがあることを前提としています。

+0

私たちのために働く。 Fsharp.Compiler.Tools Nugetを追加すれば十分でした。それは自動的にインポートステートメントを追加し、条件付きインポート(あなたのスニペットの最後) –

1

まだ更新されていないようです。ビルドサーバー用にインストールするための

  • 四段階のプロセス(オプション3までスクロール)

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

(4.0)

  • MSDNのブログによると...

https://blogs.msdn.microsoft.com/dotnet/2017/03/07/announcing-f-4-1-and-the-visual-f-tools-for-visual-studio-2017-2/

from blog post

Microsoftのサイトで検索すると、

enter image description here

...何かを見つけるように見えることはありませんあなたは、少なくとも

4

MSIがインストールされていますが、MSDNにはまだ公開されていません。
しかし、まもなくなります。

あなたはここでの問題を追跡することができます:GitHubの上:

"展開FSharpツールMSIをMSDNの#2553に" https://github.com/Microsoft/visualfsharp/issues/2553

ケビン身代金

関連する問題