3

我正在尝试将一个简单的 f# 控制台应用程序部署到同事的计算机上,但它一直失败。双击应用程序图标后,会出现控制台窗口,但随后会出现 Microsoft 错误报告窗口,询问我是否要发送错误报告,我拒绝,然后控制台窗口中会闪烁一些文本。它看起来像一条错误消息,但窗口关闭得太快,无法分辨。奇怪的是,如果我创建一个类似的 C# 应用程序,它就可以工作。我的目标是发布模式下的 .net 4 客户端框架。

这是代码

f# 代码(不起作用):

open System

printfn "print test"
Console.ReadLine() |> ignore

c# 代码(确实有效):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestCApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Testing...");
            Console.ReadLine();
        }
    }
}
4

2 回答 2

8

您的 C# 代码段的 F# 模拟不是您的 F# 代码,而是以下代码:

System.Console.WriteLine "print test"
System.Console.ReadLine() |> ignore

虽然上面 2-liner 的应用程序将运行,类似于 C# 片段中的一个,只是在原始 .NET 上,printfn在 F# 代码中使用函数需要在目标计算机上部署某些特定于 F# 的核心组件,这可能不是案子。后者解释了观察到的行为。

于 2012-05-04T15:54:45.553 回答
5

查看您的 F# 项目的引用,您将看到 FSharp.Core 通常位于此处:

C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v4.0\FSharp.Core.dll

在 Windows 7(64 位)PC 上

另请查看 F# 站点以获取运行时下载。

http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/release.aspx

编辑:这是运行时下载的直接链接(感谢 ildjarn):

http://www.microsoft.com/en-us/download/details.aspx?id=13450

于 2012-05-04T16:10:18.963 回答