当前位置:  开发笔记 > 后端 > 正文

F#powerpack和发行版

如何解决《F#powerpack和发行版》经验,为你挑选了1个好方法。

我需要任意精确的有理数,我可以在F#powerpack中找到它.我的问题是关于分配的机制; 我的程序至少需要能够在Windows/.Net和Linux/Mono上编译和运行,因为我在这两个平台上都有潜在的用户.据我了解,最好的程序是:

    下载powerpack .zip,而不是安装程序.

    将DLL复制到我的程序目录中.

    将随附的许可证文件复制到我的程序目录中,以确保一切都在板上.

    声明引用并继续使用我需要的函数.

    将上述文件与我的源和二进制文件一起发送,并且由于DLL使用字节代码,因此它可以在任何平台上正常工作.

这是正确的程序吗?我错过了什么吗?



1> Tomas Petric..:

你基本上是正确的,任意精确有理数只能在PowerPack中使用(BigInteger是.NET 4.0的一部分,但有理数仍然是F#特定的).

但是,您还需要使用F#runtime redistributable(即FSharp.Core.dll程序集)分发程序.它包含一些基本的F#类型(例如用于表示函数的类型),它们不是标准.NET运行时的一部分.

有关F#Redistributable Package的更多信息,请访问MSDN

您可以从Microsoft下载中下载FSharp.Core.dllredist .

添加对项目的引用时,编译器会在应用程序中包含引用库的名称和版本.应用程序启动时,运行时会尝试在各个位置找到库.因此,要在.NET和Mono上部署应用程序,您需要(以某种方式)将您的应用程序与FSharp.Core.dll和一起分发FSharp.PowerPack.dll.

F#Redistributable和F#PowerPack安装程序将库放置到GAC(全局程序集缓存),GAC由计算机上的所有.NET应用程序共享.在Mono上,您可以使用gacutil工具(从命令行)获得相同的结果.在这种情况下,您需要将它们复制到某个地方(任何地方)并运行此工具.您的应用程序将在GAC中找到它们.

或者,如果将程序集放在与应用程序(exe文件)相同的文件夹中,那么.NET和Mono也应正确定位它们并且它应该可以正常工作.我认为这是出于版本控制原因而不鼓励的(例如,全局安装的文件可以轻松更新),但我不认为许可证禁止这种形式的部署.

似乎对于创建.NET/Mono可再发行组件,使用第二种技术会更容易(因为它允许简单的xcopy depoloyment).

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有