问题标签 [gmcs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1927 浏览

c# - 如何在 ac# (gmcs) 项目中包含库(例如 fastJSON)

gmcs免责声明:我昨天刚刚由 hello world 制作

问题

我想在使用gmcs的项目中使用 fastJSON。

我如何

  1. 将包含 10 个左右文件的项目编译到一个库中?
  2. 使用我的 1 文件项目静态链接到该库?
  3. 在我的系统上“安装”库?

想象的解决方案

0 投票
1 回答
187 浏览

c# - 将 AssemblyVersion 属性移动到单独的文件时,在 Mono 下生成错误

我有一个带有构建任务的 C# 库项目,该任务将当前 SVN 修订版写入名为 Version.cs 的文件中。结果文件只包含这一行:

我已从AssemblyVersionAssemblyInfo.cs 文件中删除了预先存在的属性。

使用 Mono 编译时,gmcs 编译器不喜欢这样 - 它会引发以下解析错误:

任何想法为什么会发生这种情况?当然 AssemblyInfo.cs 不是某种“特殊”文件 - 我宁愿不必将版本属性写入其中......

我还没有在 Windows/VS.NET 下尝试过(它需要能够在两个平台上编译)。

0 投票
0 回答
696 浏览

.net - 如何使相同的 .exe 与 .NET 2.0、3.5 和 4.0 一起使用?

我正在开发一个 .NET 2.0 应用程序,使用 Mono ( gmcs -langversion:ISO-2) 从 .cs 源创建 .exe。如果安装了 .NET Framework 2.0,它在 Windows 上可以正常工作,但如果只安装 3.5 或 4.0,它就无法正常工作。是否可以使相同的 .exe 文件与任何 .NET 框架 2.0、3.5、4.0(以及可能的未来版本)一起使用?据我所知,我没有使用在这些版本之间发生变化的任何 API。

如何使生成的 EXE 在所有 .NET 框架版本中工作?建议它应该开箱即用(但它不适用于我的 .exe)。它还说:

安装 Framework 4.0 后,您应该可以运行针对 2.0 以后的任何框架的应用程序。但是,您可能需要确保您的应用程序知道这一点。在 App.Config 中,您可以使用 SupportedRuntime 元素指定在未安装目标框架的情况下您的应用可以尝试使用的版本。

如何更改 App.Config?如何设置 SupportedRuntime 元素?是否可以在不在目标机器上创建更多文件的情况下做到这一点 - 即只需在 .exe 中设置一些内容以使其兼容?

0 投票
1 回答
1414 浏览

c# - Mono xbuild 使用 dmcs 而不是 gmcs

我有以下代码:

我有以下 MSBuild 脚本:

它失败并显示以下消息:

Xbuild 调用 dmcs 编译器,但 Microsoft.Build.Utilites 程序集引用了 .net 2.0 程序集。当我使用 gmcs (2.0) 手动编译时,它可以工作。但我无法让它与 xbuild 一起使用。

0 投票
2 回答
6836 浏览

c# - 在 Linux 中使用 Windows 窗体编译 C# 代码

我下载了一些包含使用 Windows 窗体的 C# 代码的源代码。是否可以在Linux环境(Ubuntu 12.04)下编译代码并运行?

我已经尝试使用mcs成功编译一些 C# 源代码并使用mono运行生成的exe文件。

源代码可以在这里下载。如果可能,请描述您将如何编译和运行第 2 章/OpeningDocument解决方案。

编辑

0 投票
3 回答
7446 浏览

mono - 在 Centos 上编译和安装 Mono - 无法通过“make”

安装 Mono 的基本说明是:

tar xzvf mono-X.XX.tar.gz;cd mono-X.XX ./configure --prefix=/usr/local; 制作; 进行安装

所以我从http://download.mono-project.com/sources/mono/下载了最新版本并将其解压缩(但那是 bz2,使用 j 选项作为 tar)。

配置似乎工作正常。当我运行 make 时,它​​会在此之前插入 40 分钟左右:

几行后它退出。

我无计可施。无尽的谷歌并没有真正让我到任何地方,除了一些人说当你用日常构建覆盖 dll 时会发生这种情况。

这是一个全新的 CentOS 6.2 安装,包含 PHP、Apache、Mysql、Webmin,现在正在尝试 Mono。我已经下载了最新的单声道版本(2.11.2),但最后一个版本(2.11.1)也发生了同样的事情。

我接近放弃并切换到我们的网络服务器的 Debian,也许这是要走的路?

任何帮助表示赞赏。干杯

0 投票
2 回答
4524 浏览

monodevelop - MonoDevelop:是否可以切换 PCL 的编译器?

我们正在启动一个跨平台项目,以部署到 Android 和 iOS。显然,很多代码要在两者之间共享,并且一些代码严重依赖于 .NET 框架项,例如 sqlite-net 库。

在 2 个项目之间共享代码的最佳方式 (afaik) 是使用 PCL——这样可以在解决方案中使用来自 iOS 和 Android 项目的共享代码来引用项目,并重新编译和链接所有内容很好的方式。

但是,在 MonoDevelop 中创建的 PCL 是使用 gmcs 编译器编译的,并且在这种情况下无法构建一些外部依赖项(即在这种情况下使用的框架缺少System.Func<T, TResult>,仅提供System.Func<T1, T2, ..., T9, TResult>)。MonoTouch 的编译器 (smcs) 能够完美地编译 PCL(通过将 gmcs 二进制替换为 smcs 二进制来证明)。根据我在谷歌搜索后发现的结果,gmcs 使用 2.0 .NET 框架,而 smcs 使用称为 2.1 框架的 smth,它实际上是最近的 .NET 的混合体。

问题来了:在 MonoDevelop 中构建 PCL(作为另一个项目的依赖项)时,是否可以指定使用哪个编译器?

0 投票
4 回答
34064 浏览

c# - 如何使用 Mono 的 mcs 编译和运行 csproj 文件?

我是一个 Unix 人,需要尝试编译一些 C# 代码才能工作。我已经下载了 Mono for Mac 和 mcs 命令行工具。这个库附加了一个 csproj 文件,其中包含我需要编译的所有文件的 XML。

Mono/mcs 可以读取这个 csproj 文件并从中生成一个 DLL 吗?

0 投票
1 回答
5430 浏览

c# - 使用不同文件夹中的 DLL 运行 mono .exe

我使用Mac 的可执行文件和以下命令行程序编译了该test.cs文件(它引用了第三方库) :dmcs

这编译没有问题(不包括 /reference 参数会导致问题)。这program.exe在当前目录中创建了一个可执行文件。当我尝试像这样运行它时:

我收到以下错误:

我能想出解决这个问题的唯一方法是将文件复制project.dll到包含该program.exe文件的目录中。一旦我复制project.dll到同一目录中,程序就可以正确运行。

我可以传递一个额外的参数来mono在不同的程序目录中指定 DLL 吗?或者,我可以传递一个标志来dmcs让它直接将 DLL 编译成二进制文件吗?

0 投票
2 回答
1235 浏览

c# - 使用 mono 和 -nostdlib 编译

我正在使用 Microsoft.CSharp.CSharpCodeProvider 以编程方式编译程序集并从外部 .cs 文件运行一些函数。

但是有没有办法禁止这些功能对文件系统等进行任何更改(我需要在某种沙箱中运行它们)?

我正在考虑向 CompilerParameters 添加“-nostdlib”选项,这样生成的程序集将无法访问 System.IO.File 和其他类。但我仍然需要 System.Object、System.ValueType 等。

现在我收到这些错误:

如何添加那些没有可能严重损害系统的类(如 System.IO.File、System.IO.Directory、System.Net.(something)、System.Threading.(something)?)

或者,也许有更简单的方法?谢谢你。