是否可以使用 Mono (Mac) 运行 LINQPad

Posted

技术标签:

【中文标题】是否可以使用 Mono (Mac) 运行 LINQPad【英文标题】:Is it possible to run LINQPad with Mono (Mac) 【发布时间】:2011-04-10 13:32:33 【问题描述】:

我在 Snow Leopard 中安装了 Mono 2.6.7,并希望运行 LINQPad。我已经启动了 LINQPad (v2.21),但立即得到了 FileNotFoundException。有人能成功运行吗?

我认为异常是因为它试图读/写配置文件或其他东西,但希望有一些解决方法。

谢谢。

编辑: 使用“Olive”构建 Mono(WPF 必需):

在终端:

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 时遇到了这个问题:

警告**:类 System.Windows.Resources.AssemblyAssociatedContentFileAttribute 无法加载,用于 LINQPad 无法加载,用于 LINQPad

编辑: Xamarin Workbooks 最近发布了 1.0 (https://developer.xamarin.com/workbooks/),是我见过的最接近 macOS 上的 LINQPad。

编辑(2017 年 9 月): 这仍然是推测性的!

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

查看https://blog.jessfraz.com/post/windows-for-linux-nerds/ 的博文了解详细的演练。

【问题讨论】:

你能得到例外的细节吗?如果是,请在此处打印。 我在终端看到了更多信息: ** (/Users/ifwdev/Downloads/LINQPad.exe:1775):警告**:无法加载从 /Users/ifwdev/Downloads/LINQPad.exe 引用的以下程序集:程序集:PresentationCore (assemblyref_index=11) 版本:3.0.0.0 公钥:31bf3856ad364e35 这意味着它需要 WPF 程序集 PresentationCore - 是否有单声道等效项 啊,如果我能更好地阅读路线的话。我需要默认情况下不包含在单声道中的“橄榄”。 【参考方案1】:

LINQPad 在 Mono 中不起作用,主要是因为它依赖于 ActiPro 的 SyntaxEditor,后者执行一些 Win32 互操作。 LINQPad 本身也有一些互操作性。

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

【讨论】:

嗯,我想你比任何人都清楚。无论如何,至少我学到了一些关于 Mono 的知识。谢谢乔... Joe:您认为旧版本是否可行? (见贾斯汀的评论) 更新:我找到了 LINQPad (0.92) 的旧副本并将其上传到此处:www.linqpad.net/LINQPad092.zip。确保通过快捷方式运行它(使用 -noupdate 和 -noforward 开关调用 LINQPad),否则 LINQPad 会将自身修补到最新版本。 是否有机会找到另一个语法编辑器并处理 Win32 依赖项?我知道这不是一项微不足道的任务,但它可能会写出一些很棒的技术文章。也许 MS 有兴趣帮助补充他们对操作系统的新爱好。这是我现在做 Mac 开发时真正怀念的唯一工具之一。 @JoeAlbahari 自从 .NET Core 越来越受欢迎以来,有什么更新吗?我真的很想在 Ubuntu 上运行 LINQPad。【参考方案2】:

我还想让 LINQpad 在 OSX 下运行,并且在使用上述来自 Joe 的链接 0.92 版本后发现这似乎是不可能的。

虽然应用程序在单声道下启动并显示熟悉的 LINQPad 屏幕,但如果您尝试运行任何查询,它只会崩溃并消失。

原因是似乎在该 LINQPad 版本中使用了 WebBrowser 控件,根据终端窗口中显示的错误,似乎需要 libgluezilla。通过对 libgluezilla 的一些挖掘,我看到了 Mono 开发人员的一些回复,说它不适用于 mac,也不会适用于 mac,这很遗憾。

参考错误:

mono linqpad.exe
libgluezilla not found. To have webbrowser support, you need libgluezilla installed

【讨论】:

【参考方案3】:

LinqPad 可能是我完全迁移到 Mac 进行开发时错过的一件事,我不会为了访问它而运行 VM。如上所述,Xamarin Workbooks 实际上是一个相当不错的 macOS 替代品。

参考:https://***.com/a/8480659/132599

【讨论】:

【参考方案4】:

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

Winforms Samples - Mono

也就是说,我不得不想象他们自己已经能够让它发挥作用。

【讨论】:

@ifwdev - 我刚刚看到你发布的异常。看起来较新版本的 LINQPad 需要 WPF(Mono 没有实现)。您可能想尝试下载以前版本的 LINQPad。

以上是关于是否可以使用 Mono (Mac) 运行 LINQPad的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mono 中使用 LINQ?

如何在 Mono 上将 Linq 与 MySql 数据库一起使用?

是否可以在 Mac OS X 上通知 DTrace 动态生成的代码?

mac下使用mono运行Fiddler!!

mac系统怎么运行ASP文件

我是否需要特殊许可才能分发使用mkbundle编译的Mono可执行文件?