Tag: mono

使用Mono将C#.NET应用程序移植到OS X?

好吧,伙计们,我正在编写一个我想要跨平台的应用程序。 直到最近,我一直在尝试使用C#在Silverlight中执行此操作,因为它也可以在OS X上运行,但是我对C#相当生疏,除了是Silverlight的新手,我在头痛后遇到了头痛。 其中大部分源于一个旨在在浏览器中运行的应用程序所带来的限制,当从我的开发服务器运行时直接从文件://等运行时,它的运行方式不同。 我宁愿完全放弃整个OS X支持的想法,而不是完全重写OS X的应用程序,特别是因为我完全没有为它编写的经验。 我希望能够做的是使用Visual Studio for Windows在C#.NET中编写常规应用程序,然后使用Mono轻松将其移植到OS X. 使用Mono将.NET应用程序带到OS X有多难? 我的应用程序非常简单,表单或任何东西都没有任何异国情调,所以我必须假设它在Mono的WinForms实现中得到支持。 关于如何使用Mono移植应用程序有什么好的资源吗? 或者,也许,我错过了整点,它只是让你在OS X上运行.NET应用程序,我不需要打扰移植? 原谅我对这个问题一无所知,我只是在10分钟前开始考虑在Silverlight中遇到另一个烦人的限制之后走这条路。 我是第一个承认我不知道我的屁股关于这个问题的人,所以要温柔…… 🙂

当使用最新的Monodevelop和VS 2012 RC共享代码时,我遇到了问题

使用最新的Monodevelop和VS 2012 RC共享代码时。 我可以加载和使用.sln解决方案,.csproj项目文件以及运行MonoDevelop的Mac和运行最新VS 2012 beta的Windows 7 PC的所有代码文件。 源代码位于计算机之间的共享上。 这非常有效……但是在某些阶段,当我尝试在Mac上的MonoDevelop下重新加载解决方案项目时,MonoDevelop认为解决方案文件.sln是一个Hex文件并加载并在窗口中显示hex。 它不再认为它是一个解决方案文件! 我注意到文件行以0D 0A终止,这对于PC是正确的。 。 我知道Mac只使用了0D ……但它最初和它一样有用。 内容对我来说很好看! 如果我在Mac MonoDevelop上创建一个新的解决方案,然后将现有的csproj放入其中,它可以正常工作。 直到它没有…. 有任何想法吗?

扩展Mono C#编译器:有没有任何文档或先例?

我目前正在参与一些有趣的编程语言研究,到目前为止,该研究主要围绕使用一些非常强大的基于程序员生产力的function扩展即将推出的Java 7.0编译器。 该工作应同样适用于相关的编程语言,如C#。 我目前正在寻找原型化C#端口function的选项。 我更喜欢开源选项,以便可以与最广泛的受众分享这项工作的成果。 因此,Mono C#编译器似乎是最明显的起点。 我是一位经验丰富的C#开发人员,所以编写代码不是问题。 我主要关心的是以可维护和支持的方式扩展编译器。 在关于这个主题的Mono FAQ( 链接 )中,声明“Mono已被用作尝试C#语言的新思想的基础(有三个或四个编译器派生自Mono的C#编译器)”。 不幸的是,没有比此更多的指示,到目前为止,谷歌的搜索没有任何改变。 我想知道是否有人有这方面的任何信息。 mcs / gmcs / dmcs是否具有标准的可扩展性模型? 具体来说,我将在程序的抽象语法树上执行一些有趣的转换。 是否有一种标准机制,用于在抽象语法树生成和类型检查器之间插入function到编译器链中,然后生成代码? 到目前为止,我已经为代码编写了一些特别的扩展(主要是在代码生成器中),但这似乎不是一个可维护的解决方案,特别是考虑到我打算让我的扩展更新为Git主干单声道尽可能多。 此外,能够更新我的扩展,而不必每次进行更改时都重新编译整个编译器,这将是很好的。 我希望能够将我的所有AST操作包装到一个可以由mcs / gmcs / dmcs动态加载的.NET程序gmcs而不必直接破解核心编译器代码。 任何有关扩展Mono C#编译器的想法或指示都将非常感激! 更新(2010年10月23日) 在回答我的问题时,我决定开始研究Mono的一个分支,以便为编译器创建一个简单的可扩展性模型。 这是在它的早期阶段,但它在GitHub: http://github.com/rcook/mono-extensibility 主要提交是: http : //github.com/rcook/mono-extensibility/commit/a0456c852e48f6822e6bdad7b4d12a357ade0d01 如果有人对此项目的合作感兴趣,请告诉我!

将ISO C ++类暴露给C#

我需要向C#公开一些C ++类(我在Linux上构建,使用mono,因此COM不是一个选项) 到目前为止我收集的证据表明,解决这个问题的最佳方法是: 在ISO C ++类周围编写一个包装器C ++ .Net类 从C#中使用C ++ .Net类 我有以下问题: 首先,这是实现将C ++类暴露给C#的目标的“最佳”方式吗? 到目前为止,我还没有看到任何实际显示如何执行此操作的示例 – 任何人都可以建议一些链接,或者代码片段来显示如何为虚拟类完成此操作? 如何从C ++代码向C#代码发送异步消息通知? 理想情况下,我想使C#类引发事件,并将接收到的数据作为参数

无法从Raspberry Pi Mono项目中的SignalR Assembly加载HubConnection

我正在尝试在Raspberry Pi中构建一个项目,该项目通过Signalr与我的Azure服务器进行通信。 我在一个单一项目中使用SignalR在.NET客户端,同时在Xamarin项目上工作并取得了成功。 出于测试目的,我编写了一小段代码。 using System; using Microsoft.AspNet.SignalR.Client; namespace testSignalr1 { class Program { static void Main() { var hubConnection = new HubConnection(“******”); var serverHub = hubConnection.CreateHubProxy(“HubTest”); serverHub.On(“broadcastMessage”, message => System.Console.WriteLine(message)); hubConnection.Start().Wait(); serverHub.Invoke(“TestMethod”).Wait(); System.Console.Read(); } } } 我正在使用mcs mono编译器编译它。 sudo mcs test.cs /r: /usr/lib/mono/4.5/Microsoft.AspNet.SignalR.Client.dll 该程序实际上编译成功。 但是当它运行时,我得到以下exception Could not load type ‘Microsoft.AspNet.SignalR.Client.HubConnection’ from assembly ‘Microsoft.AspNet.SignalR.Client’ 我正在使用的Microsoft.AspNet.SignalR.Client.dll是这个Git项目中的lib文件夹中的一个, […]

(ClaimsIdentity)System.Security.Claims in Mono

我可以从Mono Status看到没有实现System.Security.Claims。 有谁知道是否有可能在Mono中实施“ClaimsIdentity”? 是否有一个项目在Mono中处理基于声明的身份?

Xamarin上的WebHeaderCollection和HttpWebRequest

我正在尝试将我的项目从Mac上的Xamarin Studio移植到Windows 7上的Visual Studio 2012.在Mac和XS上工作正常。 在VisualStudio 2012上,我遇到了以下两个问题: 错误3’System.Net.WebHeaderCollection’不包含’Add’的定义,也没有扩展方法’Add’接受类型’System.Net.WebHeaderCollection’的第一个参数可以找到(你是否缺少using指令或者程序集引用?)C:\ Users \ user \ Documents \ Visual Studio 2012 \ Projects \ MyProject \ MyProject.Core \ Services \ MyProjectService.cs 错误4’System.Net.HttpWebRequest’不包含’GetResponse’的定义,并且没有可以找到接受类型’System.Net.HttpWebRequest’的第一个参数的扩展方法’GetResponse’(你是否缺少using指令或者程序集引用?)C:\ Users \ user \ Documents \ Visual Studio 2012 \ Projects \ MyProject \ MyProject.Core \ Services \ MyProjectService.cs 在那段代码上: var request = WebRequest.Create(“https://www.myaddress.com/test/”) as HttpWebRequest; request.Method […]

JitIntrinsicAttribute如何影响代码生成?

我浏览.NET源代码并看到了这个属性 。 它说, 可以附加到JIT内部方法/属性的属性 并根据MSDN : 表示修改后的方法是实时(JIT)编译器可以执行特殊代码生成的内在值。 这个类不能被inheritance。 但我很难找到。 在什么样的代码上执行特殊的代码生成? 我的主要猜测是它主要使用像SIMD这样的处理器指令,就像Java JIT那样 。 这是一个例子 。 我对它的加速感到好奇,我想知道Mono是否也这样做了。

与Linux中的本机库互操作

我正在用C#编写一个应用程序,它是跨平台的。 它将DllImport用于几个不同的库。 它也是x32和x64。 它似乎适用于我自己编译的.dll / .so。 我将x32共享库放在x32子文件夹中,将x64共享库放在x64子文件夹中。 在Windows上通过.net框架我根据当前运行时调用SetDllDirectory(“x32” or “x64”) 。 在单声道上,通过windows,linux或mac,我在RandomLibrary.dll.config中使用DllMap 。 它适用于位于x32或x64目录中的文件。 但是,我也将DllImport用于我没有编写的库,例如FreeType2。 在Windows上,我只是将构建的库推送到两个子文件夹中。 但是在Linux上,我宁愿使用你可以通过友好的本地包管理器安装的libfreetype6库。 我可以将DllMap链接硬编码到/usr/lib/x86_64-linux-gnu/libfreetype .so.6,但我认为freetype文件会根据你使用的发行版而改变。 有什么简单的方法,它可以找到libfreetype.so无论我使用什么发行版?

Web服务在单声道4中不起作用

我有一个使用Web服务与ASP.Net的应用程序,我应该维护。 所以我在这个主题上提高了我的技能。 我在使用VS 2013的Window中运行Webservice没有问题,但是有单声道问题。 这是我运行代码时遇到的错误 System.ArgumentNullException Value cannot be null. Parameter name: path1 Description: HTTP 500.Error processing request. Details: Non-web exception. Exception origin (name of application or object): mscorlib. Exception stack trace: at System.IO.Path.Combine (System.String path1, System.String path2) [0x00006] in :0 at System.Web.Services.Configuration.WsdlHelpGeneratorElement.get_HelpGeneratorPath () [0x0000c] in :0 at System.Web.Services.Protocols.DocumentationServerProtocol.Initialize () [0x001f1] in :0 at System.Web.Services.Protocols.ServerProtocol.SetContext […]