gpt4 book ai didi

ExcelDna 和独立 F# 安装

转载 作者:行者123 更新时间:2023-12-02 22:17:27 26 4
gpt4 key购买 nike

我已经在 Windows 上下载了 F# 压缩发行版(即没有安装程序),但在使用 ExcelDna 时遇到了困难。

当我将 FSharp.Core.dll 和 powerpack 复制到 ExcelDna 文件(xxx.dna 和 xxx.xll)的目录中,并在 dna 文件中使用代码(见下文)时,它不起作用(尽管没有错误消息)。

<DnaLibrary Name="FSharp Sample" Language="F#">
<![CDATA[

namespace Foo

module Bar =

open ExcelDna.Integration
let sayhello () = "Hello from F#"

[<ExcelFunction(Category="FSharp Functions", Description="FSharp function to add numbers")>]
let add x y = x + y

let rec factorial = function
| x when (x > 1.0) -> (floor x) * factorial (x - 1.0)
| _ -> 1.0

]]>
</DnaLibrary>

但是它确实可以使用目录中的 dll,并使用对 F# 编译的库的引用,如下所示:

<DnaLibrary>
<ExternalLibrary Path="MyExcelDna.dll" />
</DnaLibrary>

其他语言(C# 和 VB)似乎工作正常。

有人使用过带有压缩 F# 发行版的 ExcelDna 工具吗?有人知道可能出了什么问题吗?

非常感谢您的帮助。

最佳答案

Excel DNA 库是否使用 CodeDOM 来编译 F# 代码片段?

如果是,那么您需要确保 CodeDOM 提供程序可以找到 fsi.exe 可执行文件(以便它可以调用它来进行编译)。默认情况下,这使用一些注册表设置,因此这可能是一个问题。您可以通过查看 CompilerLocationUntils.fs 中的源代码中的 BinFolderOfDefaultFSharpCompiler 来了解该解决方案的工作原理。 .

也许将关键的fsharp-compiler-location添加到某些app.config(不确定应该是哪一个)可以工作。

或者,您可以尝试从源 available at CodePlex 编译 FSharp.Compiler.CodeDom.dll并查看 CodeDom 提供程序是否被调用(以及使用什么参数)。编译这个单个项目应该不难(创建新项目并在那里复制源文件可能更容易,因为 CodePlex 上提供的项目文件是自定义的并且有点令人困惑)

关于ExcelDna 和独立 F# 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com