【问题标题】:F# package for Sublime Text Build System absent没有用于 Sublime Text 构建系统的 F# 包
【发布时间】:2017-06-25 04:25:38
【问题描述】:

我从 F# 开始,并试图让它与带有包 https://github.com/fsharp/sublime-fsharp-package 的 Sublime Text 3 一起使用。使用 Package Control 安装包后,我看到 F# 显示为 Sublime Text 底栏中的可用语言,据我所知,语法突出显示似乎或多或少起作用,但 F# 的构建系统未能显示为它应该。

所以,为了解决问题,我运行“build.sh install”并得到一个错误,“无法打开程序集 '.paket/paket.bootstrapper.exe':没有这样的文件或目录。”我有点卡住了。非常感谢您的帮助。

【问题讨论】:

  • 您在运行build.sh install 时位于哪个目录?另外,我查看了github.com/fsharp/sublime-fsharp-package 构建脚本,它有一个名为Install(大写I)的构建目标,而不是install
  • paket.bootstrapper.exe 文件应该包含在sublime-fsharp-package 中。但如果不是,您可以从github.com/fsprojects/Paket/releases/latest 下载它(您也可以直接获取paket.exe 文件;引导程序的唯一工作是下载paket.exe 并验证它是否具有正确的校验和)。这两个文件都应位于项目文件夹根目录中的.paket 目录中。
  • 抱歉,当我手动下载包并将其解压缩到 /Users/Username/Library/Application\ Support/Sublime\ Text\ 3/Packages/ 时,会出现我描述的错误。在终端中,我当时运行的命令是/Users/Username/Library/Application\ Support/Sublime\ Text\ 3/Packages/sublime-fsharp-package-master/build.sh install。当使用包控制作为替代方式时,包将自身安装在不同的目录中,“.../Application\ Support/Sublime\ Text\ 3/Installed\ Packages/sublime-fsharp-package.sublime-package”和@ 987654334@ 给出“没有这样的文件或目录。”
  • 我还应该提到这似乎与Paket的安装有关。我运行了 git clone github.com/fsprojects/Paket.git,它克隆到“/Users/Username/Paket”,但未能包含 .paket 和 .github 目录,因为 Finder 告诉我以“.”开头的目录。为系统保留。
  • 刚刚发布了一个很长的答案,但我想我可以在 600 个字符的评论中回答它。我认为您的问题是您需要先执行cd /Users/Username/Library/Application\ Support/Sublime\ Text\ 3/Packages/sublime-fsharp-package-master,然后然后运行./build.sh Install。我认为省略cd 是您问题的根本原因。

标签: build f# mono sublimetext3 paket


【解决方案1】:

从你制作的 cmets 来看,你似乎对 OS X 的 Unix 基础有点不熟悉。我会先解释一下,然后我会建议你尝试一些可能会解决你问题的东西。

从技术上讲,名称以. 开头的文件或目录并不是您所说的“为系统保留”;它们是隐藏的。现在,Finder 确实不允许您创建名称以 . 开头的文件或目录,因为 Apple 不希望接到不知道隐藏的人的所有技术支持电话。 -files 功能:“我将我的文件命名为 ... more important stuff for work,现在它消失了!帮助!!!”但是,如果您在终端应用程序中,那么您可以轻松地创建以. 作为首字母的文件或目录:mkdir .foo 应该可以工作。当您执行ls 时,您不会看到它,但ls -aa 表示“全部”)会显示所有文件,包括隐藏文件。您还可以执行cd .foo 并在隐藏的.foo 目录中创建文件——虽然.foo 文件夹不会出现在Finder 中,但它可以在终端中完全访问,并且可以在任何F# 程序中访问可能会写。

所以当你说你克隆了https://github.com/fsprojects/Paket 但它没有包含.github.paket 目录时,我想你只是不知道如何查看它们。您无法在 Finder 中看到它们(好吧,you can if you jump through a couple of hoops,但我认为这不值得),但您可以通过 ls -a 看到它们。只需打开您的终端,运行cd /Users/Username/Paket,然后运行ls -a,我想您会看到.paket.github 目录确实是由您的git clone 命令创建的。

所以你应该试试这个:

  1. 转到https://github.com/fsprojects/Paket/releases/latest
  2. 下载paket.bootstrapper.exepaket.exe 文件。将它们放在 /Users/Username/Downloads 中(或者默认 OS X 下载目录所在的位置,如果它不同的话——只要它是您可以轻松找到它们的地方)。
  3. 打开终端应用程序。
  4. 转到解压 Sublime Text 3 包的目录。即,在终端应用程序中,运行 cd /Users/Username/Library/Application\ Support/Sublime\ Text\ 3/Packages/sublime-fsharp-package-master
  5. 运行ls -a 看看是否有.paket 目录。
  6. 如果不存在,请运行mkdir .paket
  7. 现在执行cd .paket,这样您就位于sublime-fsharp-package-master 下的隐藏.paket 目录中。
  8. 现在执行ls 看看是否有paket.bootstrapper.exe 文件。
  9. 如果不存在,则复制您之前下载的 .exe 文件:
    1. cp /Users/Username/Downloads/paket.bootstrapper.exe .
    2. cp /Users/Username/Downloads/paket.exe .
  10. 重要提示:现在执行cd .. 以返回/Users/Username/Library/Application\ Support/Sublime\ Text\ 3/Packages/sublime-fsharp-package-master/ 目录。
  11. 现在不要运行/Users/Username/Library/Application\ Support/Sublime\ Text\ 3/Packages/sublime-fsharp-package-master/build.sh install,而是尝试以./build.sh install 运行它。 (也可以试试./build.sh Install,因为我很确定我的资本是必要的)。

(顺便说一句,如果您不熟悉我在步骤 9、10 和 11 中使用的语法,我在命令中使用了单个 . 或两个点 ..,那么这些是长期存在的 Unix成语:. 表示“当前目录”,.. 表示“父目录”。)

我刚刚查看了您一直在运行的build.sh 脚本,它似乎假设您在运行脚本之前已经在包的基本目录(sublime-fsharp-package-master 目录)中完成了cd。所以这可以解释它失败的原因:你是从不同的目录运行它,而不是先执行cd。因此我将第 10 步标记为重要:我认为这是问题的根本原因。

【讨论】:

  • 哦,我明白了——谢谢。你是对的,我有一种感觉,我犯了一个基本的错误。 ./build.sh install 在包目录中就像一个魅力。在一个单独的注释中,为了记录,我现在在 Sublime Text 中获得了两个 F# 选项,奇怪的是,仍然没有 F# 构建系统。该软件包的 Github 人员说该软件包一团糟,所以我认为此时切换到 Visual Studio/Visual Studio Code 可能是一个更好的选择——你同意吗?
  • VS Code 的 Ionide-fsharp 插件得到积极维护,而最后一次提交到 github.com/fsharp/sublime-fsharp-package 是一年半前。因此,虽然我无法从个人经验中比较两者,因为我从未使用过 Sublime Text,但我认为 VS Code + Ionide 可能会给你更好的体验。 (顺便说一句,除了 VS Code 的主要 Ionide-fsharp 插件外,您还需要安装 Ionide-Paket 和 Ionide-FAKE 插件,因为它们为广泛使用的 Paket 和 FAKE 工具提供了集成。)跨度>
  • P.S.我怀疑您在 Sublime Text 中看到的两个 F# 选项是因为您尝试了两种不同的安装方式:一种是克隆 Github 存储库并运行 ./build.sh install,另一种是通过 Package Control 安装包。我怀疑它们都注册为单独的包,并且您可以安全地删除其中一个,而不会丢失 F# 集成。如果你切换到 VS Code,那将是一个有争议的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多