Tag: mono

仅在Mac上使用C#/ Mono的系统托盘(无停靠图标)应用程序

我希望将我的一个C#应用程序移到Mono上,以便在Mac上使用。 目前,我正在试图弄清楚如何使它成为一种“背景”过程,但仍然具有GUI元素的能力(我相信这排除了mono-service )。 最终目标是: 对于大多数交互,按时钟放置托盘图标。 删除通常随启动的应用程序一起提供的停靠栏图标 让应用程序在启动时运行。 简而言之,只需考虑Dropbox应用程序的工作原理。 我想要那种类型的GUI,但使用Mono / Mac应用程序。 我相信这通常是通过在应用程序包的Info.plist中设置LSUIElement = 1来实现的。 但是,我没有运气。 我认为这可能与mono命令在app bundle中启动我的应用程序有关。 一旦应用程序启动mono我假设它不会级联到进一步的应用程序启动。 不过,这是一个纯粹的猜测。 有没有人对此有任何想法? 谢谢。

如何使用C#唯一识别计算机?

如何使用C#(.Net / Mono,本地应用程序)唯一地识别计算机(主板)? 版。 我们可以使用类似的东西来识别.Net中的主板(请参阅C#中的获取唯一系统标识符 ): using System.Management; … ManagementObjectSearcher searcher = new ManagementObjectSearcher(“select * from Win32_MotherboardDevice”); … 但不幸的是,Mono不支持System.Management。 如何在Mono for Linux下进行? – 我不知道 :(

将.NET App转换为x86本机代码

有一个完全用C#编写的程序,它以.NET Framework 2.0为目标。 有没有办法我可以以某种方式编译(翻译)托管EXE到本机的EXE,因此它可能是.NET不可知的? 我知道可能有商业产品用于此目的……但它们有点贵。 问题是我们要在没有安装.NET Framework的情况下在运行Windows XP的计算机上部署该程序。 还要求程序的大小不得超过500Kb(最大1Mb),因为它是从Web服务器下载的(现在大小为255Kb)。 这就是为什么我们无法将完整的.NET FX(甚至是简化的)附加到下载程序的文件中。 显然,这是一个可怕的软件工程错误应该早先检测到并避免,所以我们可以使用像C ++这样的本机技术。 我们现在尝试过Novell的Mono–一个用于Linux,MAC和Windows的.NET Framework的开源实现。 Mono由C#编译器,IDE,运行时(CLR)和类库程序集组成(如System.dll和mscorlib.dll – 非常类似于安装到GAC的.NET的类库程序集)。 我们尝试做的是找到CLR文件并将它们与我们程序的文件和一些程序集一起发送。 这样,可以通过在用户的计算机上运行“mono program.exe”(命令提示符)来调用该程序。 除了给最终用户CLR文件(mono.exe和mono.dll)的这种使用带来的不便之外,总共大约2.5 Mb,远远大于所需的500 Kb甚至1 Mb。 所以,我们没有其他选择,只能通过编译器将我们的.NET应用程序转换为本机应用程序,但问题仍然存在 – 我们应该使用什么编译器以及我们在哪里可以找到… 目前我偶然发现了微软研究院的Singularity OS项目。 它是一个开源研究操作系统,用托管代码编写(至少部分)。 Singularity OS包含一个Bartok编译器,操作系统使用该编译器将托管程序转换为本机程序(x86 32位)。 应该注意的是,Bartok无法将.NET 2.0的所有方面都转换为本机代码,但大部分都是如此。 但是我还没有学会如何使用奇点…… 如果你能提供一些有关问题的有用提示和建议,你自己使用Singularity OS和Bartok Compiler的经验,或者我忽略了解决问题的其他方法以及解决问题的方法,我将非常感谢你。 非常感谢你提前! 最后,使用Mono的Full AOTfunction(在Callum Rogers的建议下)我设法生成了缺少CLI头的program.exe.dll。 所以它看起来像一个原生的DLL。 但是,我无法弄清楚如何将该DLL转换为exe或使其运行。 此dll似乎也没有暴露任何感兴趣的function,如主要function。

.NET和Mono之间的开发差异

我正在研究Mono和.NET C#,我们将来需要在项目开发时在Linux服务器上运行代码。 此时我一直在关注ASP.NET MVC和Mono。 我运行Ubuntu发行版并希望为Web应用程序进行开发,其他一些开发人员使用Windows并使用Visual Studio运行其他.NET项目。 Mono没有提供Visual Studio的function吗? 如果以后在Linux上运行它,我们不应该使用MonoDevelop吗? 是否有一些第三方工具或加载项可能会成为Mono的问题?

如何在Mac上使用Process.Start()或等效的Mono并传入参数

我正在尝试编写一些c#代码来使用Process.Start(app,args);启动浏览器Process.Start(app,args); 应用程序是浏览器的路径,例如/Applications/Google Chrome.app/Contents/MacOS/Google Chrome和args是–no-default-browser-check 如果我这样做,它适用于Windows和Linux Process.Start(“/Applications/Google Chrome.app/Contents/MacOS/Google Chrome”,”–no-first-run”); 我明白了 open: unrecognized option `–no-first-run’ Usage: open [-e] [-t] [-f] [-W] [-n] [-g] [-h] [-b ] [-a ] [filenames] Help: Open opens files from a shell. By default, opens each file using the default application for that file. If the file is in the form of a […]

使用Gmail的SmtpClient

我正在为学校项目开发一个邮件客户端。 我已经设法使用C#中的SmtpClient发送电子邮件。 这适用于任何服务器,但它不适用于Gmail。 我相信这是因为谷歌使用TLS。 我已经尝试在SmtpClient EnableSsl设置为true ,但这没有什么区别。 这是我用来创建SmtpClient并发送电子邮件的代码。 this.client = new SmtpClient(“smtp.gmail.com”, 587); this.client.EnableSsl = true; this.client.UseDefaultCredentials = false; this.client.Credentials = new NetworkCredential(“username”, “password”); try { // Create instance of message MailMessage message = new MailMessage(); // Add receiver message.To.Add(“myemail@mydomain.com”); // Set sender // In this case the same as the username message.From = new […]

如何从与桌面交互的应用程序与Windows服务进行通信?

使用.Net与服务交互的最佳方式是什么(即大多数托盘应用程序如何与其服务器通信)。 如果这种方法也是跨平台的(在Mono中工作,那么我觉得远程处理已经出来了?) 编辑: 忘了提一下,我们仍然需要在现场支持Windows 2000机器,因此WCF和.Net 2.0以上的任何东西都不会飞。

如何使用Mono和mkbundle将简单的.Net控制台项目转换为可移植的exe?

我想将我简单的纯.Net 2.0控制台实用程序转换为便携式exe文件,我可以将其放在USB记忆棒上运行,而不必担心CLR和框架库是否安装在特定的机器上。 Stackoverflow已经有一些关于使用Mono和Mkbundle从.Net-projects创建自包含Windows exes的信息,但我想要的是一个紧凑但有用的HOWTO。 从简单的C#Visual Studio项目实现可移植性的最小步骤是什么?

如何从Unity连接到数据库

我试图通过Unity连接到MS SQL数据库。 但是,当我尝试打开连接时,我收到IOException:连接丢失。 我从Unity \ Editor \ Data \ Mono \ lib \ mono \ 2.0导入了System.Data.dll。 我使用以下代码: using UnityEngine; using System.Collections; using System.Data.Sql; using System.Data.SqlClient; public class SQL_Controller : MonoBehaviour { string conString = “Server=myaddress.com,port;” + “Database=databasename;” + “User ID=username;” + “Password=password;”; public string GetStringFromSQL() { LoadConfig(); string result = “”; SqlConnection connection = new […]