f#console app不起作用。 c#console app可以

时间:2012-05-04 15:37:48

标签: c# f# console

我正在尝试将一个简单的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();
        }
    }
}

2 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分: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