2017-03-08 28 views
5

Tôi đã cài đặt Visual Studio 2017 với F # hỗ trợ trên máy tính của tôi và tôi có mục tiêu MSBuild trong C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\FSharp và F # 4.1 SDK trong C:\Program Files (x86)\Microsoft SDKs\F#\4.1Cài đặt F # 4.1 SDK trên xây dựng máy chủ

Tôi đã cài đặt Công cụ xây dựng cho Visual Studio 2017 (từ https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15) nhưng không có tùy chọn để cài đặt F # SDK để xây dựng các dự án F # sử dụng MSBuild 15 không thành công.

Làm cách nào để cài đặt SDK F # 4.1 mà không cài đặt Visual Studio?

Trả lời

2

Một sửa chữa ngắn hạn cho đến khi SDK có thể được cài đặt riêng biệt là thêm một chỉ thị vào tệp dự án để tìm trong thư mục gói NuGet cho tệp Microsoft.FSharp.Targets.Dưới đây là các bước tôi đã để sửa lỗi này:

Đảm bảo sử dụng của bạn F # dự án mới từ VS.NET 2017 như nó có chỉ thị này:

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

Thay thế phần này của hồ sơ dự án:

<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> 

Với XML này:

<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> 

Đảm bảo bạn xây dựng máy chủ đã khôi phục gói NuGet bước pri hoặc để làm xây dựng

Đảm bảo bạn gói tập tin bao gồm: FSharp.Compiler.Tools và FSharp.Core

Lý do làm việc này là như sau: này sẽ kiểm tra xem nếu FSharpTargetsPath tồn tại và nếu không sử dụng thư mục gói dưới dạng nguồn. Bạn không muốn luôn luôn sử dụng thư mục gói nếu không trên một thanh toán mới trên một máy người dùng các gói không có sẵn và xây dựng sẽ thất bại. Đối với điều này để làm việc trên máy chủ xây dựng này giả định bạn có một bước để khôi phục lại các gói NuGet PRIOR để làm việc xây dựng.

+0

Làm việc cho chúng tôi. Đó là đủ để thêm Fsharp.Compiler.Tools nuget. Nó tự động thêm câu lệnh nhập và thêm thay đổi duy nhất cần thiết là nhập có điều kiện (cuối cùng trong đoạn mã của bạn) –

1

Có vẻ như mọi thứ mới chưa được cập nhật.

  • Bốn quá trình bước để cài đặt cho một máy chủ xây dựng (di chuyển xuống để lựa chọn 3)

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

(4,0)

  • Theo blog 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

vẻ như bạn ít nhất cần NET Core/CLI

  • Tìm kiếm trên trang web của Microsoft dường như không tìm thấy bất cứ điều gì ...

enter image description here

Điều gần nhất sẽ là 4.0 công cụ: https://www.microsoft.com/en-us/download/details.aspx?id=48179

  • Có alse các gói NuGet thô (4,1)

https://www.nuget.org/packages/FSharp.Compiler.Tools https://www.nuget.org/packages/FSharp.Core

  • Bottom line: Tôi nghĩ mình nên mới nó chưa được phát hành trong một định dạng tương tự cho các phiên bản trước. Tôi sẽ tiếp tục kiểm tra sau mỗi 24 giờ để xem họ có cập nhật nó trên trang web của họ hay không.
4

Có một MSI có thể được cài đặt, nó chưa được xuất bản trên MSDN.
Nhưng sẽ sớm thôi.

Bạn có thể theo dõi vấn đề này ở đây: trên GitHub:

"Deploy FSharp cụ MSI để MSDN # 2553" https://github.com/Microsoft/visualfsharp/issues/2553

Kevin Ransom

Các vấn đề liên quan