Is there a distributed runtime with FSharp.Core 4.3.0.0?

In our environment, we have a server farm; a number of tasks are performed on each server. Binary task packages are deployed (and tasks are performed) with their own planning system.

When a new general dependency on Microsoft libraries or the runtime is introduced, this dependency is usually carried over as a server-level update (for example, the Microsoft Visual C ++ redistributable package). Currently, a package with installed version of Microsoft Visual F # 2.0 Runtime is installed on the servers, as well as version FSharp.Core 4.0.0.0 in the GAC, from where I do not know where FSHarp.Core 4.3.0.0 is not publicly available from.

Is there a redistributable package for Visual F # 3.0 that will use FSharp.Core 4.3.0.0 in the GAC, or should we instead include a copy of the FSharp.Core.dll file with each bin of the task? In fact, I would avoid having hundreds of copies of a shared DLL, if possible.

+6
source share
3 answers

Likely answer

I would be happy to make a mistake and delete this answer with pleasure, but I must conclude that there is no redistributable package that would install a system-wide copy of FSharp.Core version 4.3.0.0 in the GAC.

Crack a problem

The following WIX script creates the .MSI package, which installs the assembly and NGen. Of course, testing was limited, so use it only if you really need the MSI package to deploy the assembly. To explicitly disperse any hints of possible copyright issues, I release the code in the public domain.

<?xml version="1.0" encoding="UTF-8"?> <!-- This installs FSharp.Core.dll 4.3.0.0 (that comes with Visual Studio 2012) into the GAC and then NGens it for both 32 and 64 bits. Component ID 61F15BE3-6844-46F3-8E8E-3C81A8DBBFCB and keypath FSharp_Core_Dll_GAC_File were obtained from VS2012 RTM install DVD, file \packages\professionalcore\Setup\vs_professionalcore.msi. Other IDs here match those in the Microsoft file for easier reference. --> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:netfx ="http://schemas.microsoft.com/wix/NetFxExtension"> <Product Id="*" Name="Microsoft F# 3.0 Core Redistributable (4.3.0.0)" Language="1033" Version="4.3.0.0" Manufacturer="YOUR COMPANY HERE" UpgradeCode="5271a7ee-8baa-4348-aff7-edb114090cee"> <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> <Property Id="ARPNOMODIFY" Value="yes" Secure="yes" /> <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> <Feature Id="FsCore" Title="Microsoft F# Core Libraries" Level="1"> <ComponentRef Id="Redist4.0_GAC_FSharp.Core.dll" /> </Feature> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="GAC" Name="GAC"> <Component Id="Redist4.0_GAC_FSharp.Core.dll" Guid="61F15BE3-6844-46F3-8E8E-3C81A8DBBFCB"> <File Id="FSharp_Core_Dll_GAC_File" Name="FSharp.Core.dll" KeyPath="yes" Assembly=".net" Source="C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.0.0\FSharp.Core.dll"> <netfx:NativeImage Id="FSharp_Core_Dll_GAC_File_32" Platform="32bit" Priority="1" Debug="no" Dependencies="no" /> <netfx:NativeImage Id="FSharp_Core_Dll_GAC_File_64" Platform="64bit" Priority="1" Debug="no" Dependencies="no" /> </File> </Component> </Directory> </Directory> </Product> </Wix> 

Copy this script to the fscore.wxs file, check the path to the installed reference assembly and generate the MSI file as (also edit the path to the WIX installation)

 candle -ext "C:\Program Files (x86)\WiX Toolset v3.9\bin\WixNetFxExtension.dll" fscore.wxs light.exe -ext "C:\Program Files (x86)\WiX Toolset v3.9\bin\\WixNetFxExtension.dll" -out FSCoreRedist4300.msi -spdb -sval fscore.wixobj 
+1
source

There is a NuGet package for FSharp.Core and a redistributable package that also includes compiler tools.

+2
source

Download related to Joel Muller's answer (also here ) is an official installer from Microsoft. It contains a compiler, interactive, multiple runtime versions, and Visual Studio integration binaries.

The VS integration bits are deployed only if VS is installed (dev script). Otherwise, it will simply install the compiler / interactive / runtime (server script).

Only the latest version of the runtime (4.3.1.0 at the moment) is GACed by the installer, but various other versions are also deployed, including 4.3.0.0.

Adding assemblies to the GAC is very simple. Just run gacutil /I "C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.0.0\FSharp.Core.dll" as admin.

+2
source

Source: https://habr.com/ru/post/980380/


All Articles