能否在Mono (Mac)上运行LINQPad?

35
我已经在Snow Leopard中安装了Mono 2.6.7并想运行LINQPad,我已经成功启动了LINQPad(v2.21),但立即遇到FileNotFoundException异常。有人能够成功地运行它吗?
我认为异常是因为它正在尝试读取/写入配置文件或其他某些东西,但希望有一些解决方法。
谢谢。
编辑: 使用“Olive”(WPF所需)构建Mono:
在终端中:
svn co svn://anonsvn.mono-project.com/source/trunk/olive
cd /Users/(your user name)/olive
./configure --prefix=/Users/(your user name)/olive --with-glib=embedded
make
make install

现在在Finder中导航到:

/Users/(你的用户名)/olive/lib/mono/gac

将这些文件夹(例如PresentationCore,PresentationFramework)复制到:

/Library/Frameworks/Mono.framework/Versions/2.6.7/lib/mono/gac (当前Mono版本为2.6.7,但这可能会有所不同)

编辑:不幸的是,现在运行LINQPad时我得到了以下内容:

WARNING **:在LINQPad中使用的System.Windows.Resources.AssemblyAssociatedContentFileAttribute类无法加载。

编辑: Xamarin Workbooks最近发布了1.0版(https://developer.xamarin.com/workbooks/),是我在macOS上看到的与LINQPad最接近的工具。

编辑 (2017年9月): 这仍然只是猜测!

使用Docker和Windows子系统(WSL)可能可以运行大多数Windows应用程序(包括GUI应用程序):

cmd.exe在Ubuntu上运行的动画演示

请参阅https://blog.jessfraz.com/post/windows-for-linux-nerds/的博客文章,了解详细步骤。


你能获取异常的详细信息吗?如果可以,请在这里打印它们。 - Preet Sangha
我在终端看到了更多的信息: - kwcto
(/Users/ifwdev/Downloads/LINQPad.exe:1775):警告:无法从 /Users/ifwdev/Downloads/LINQPad.exe 加载以下程序集: 程序集:PresentationCore (assemblyref_index=11) 版本:3.0.0.0 公钥:31bf3856ad364e35 - kwcto
这意味着它需要WPF程序集PresentationCore - 是否有一个等效的Mono程序集? - Preet Sangha
啊,也许如果我更好地阅读说明书就好了。我需要“Olive”,这不是Mono的默认选项。 - kwcto
我觉得随着时间的推移,这个问题变得更加相关了! - kwcto
4个回答

38

LINQPad在Mono上无法工作,主要是因为它依赖于ActiPro的SyntaxEditor,该编辑器使用了一些Win32交互操作。LINQPad本身也进行了一些交互操作。

LINQPad的早期原型使用了TextBox而不是语法编辑器-这可能是针对Mono进行测试的内容。


5
我猜你比任何人都更清楚。无论如何,我至少了解了一些有关单核病毒的知识。谢谢,乔... - kwcto
1
Joe:你认为旧版本可能会起作用吗?(请参见贾斯汀的评论) - kwcto
1
有没有可能找到另一个语法编辑器并处理Win32依赖项?我知道这不是一项微不足道的任务,但它可能会成为一些很棒的技术写作。也许微软有兴趣协助以补充他们对新发现的操作系统的热爱。这是我目前在进行Mac开发时真正想念的唯一工具之一。 - kwcto
19
自.NET Core开始流行以来,@JoeAlbahari对此有什么更新吗?我非常希望在Ubuntu上运行LINQPad。 - Roly
显示剩余2条评论

5
我也想在OSX下运行LINQpad,发现使用Joe提供的上述链接的0.92版本后似乎不可能。
虽然应用程序在mono下启动并显示了熟悉的LINQPad屏幕,但如果尝试运行任何查询,它会简单地崩溃并消失。
原因是因为该LINQPad版本中似乎使用了WebBrowser控件,并且根据终端窗口中显示的错误,需要libgluezilla。从关于libgluezilla的一些调查中,我看到了一些来自Mono开发人员的回复,表示它不可用,并且不会在mac上提供,这很遗憾。
参考错误:
mono linqpad.exe
libgluezilla not found. To have webbrowser support, you need libgluezilla installed

3
LinqPad大概是我从完全转向Mac开发中最想念的东西,我不会运行虚拟机只为了访问它。如上所述,Xamarin Workbooks实际上是macOS的一个相当不错的替代品。

Iterating regex matches ref:https://dev59.com/9G025IYBdhLWcg3w1ZkL#8480659


1

如果您查看Mono文档,它会说LINQPad是他们用来测试WinForms实现的应用程序之一:

Winforms Samples - Mono

话虽如此,我想他们肯定已经能够让它自己工作了。


@ifwdev - 我刚看到你发的异常。看起来新版本的 LINQPad 需要 WPF(Mono 不支持)。你可能需要尝试下载之前的 LINQPad 版本。 - Justin Niessner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接