我打算做一个使用Mono和SQLite作为数据库的项目。开发主要在Mac上完成。我已经成功设置了Mono并测试了System.Data.SQLite(manageddll)。简单的测试应用程序完美运行。但是,当我尝试在我的代码中使用DataTable时,它会抛出运行时异常。以下是代码片段:publicstaticvoidMain(string[]args){stringconnectionString="DataSource=emp.db";try{using(SQLiteConnectionconn=newSQLiteConnection(connectionString)){str
我们正在考虑采用MonoTouch和MonoDroid来构建跨平台业务应用程序。此应用程序将处理需要与主数据库同步的本地数据库(仅单向复制)。唯一像我们正在寻找的项目是:http://www.blackdogfoundry.com/home.然而,我们并不满足于将其作为服务运行(而且它适用于Objective-C和Java,而不适用于Mono)。将中央数据库同步到设备中的本地SQLite似乎是一个非常常见的主题。奇怪的是没有某种框架(付费或开源)。Rhomobile为此提供了RhoConnect。还是不太适合我们。顺便说一句:我知道我们可以使用网络服务和时间戳列来构建它。我只是想尽可能
我最近一直在想办法解决这个问题。它在我的Windows机器上运行,我从NuGet获得了SQLite,但是......当我将System.Data.SQLite.dll和SQLite.Interop.dll直接从我的Windows机器放入Linux服务器时,它说SQLite.Interop.dll未找到,但我确定我在可执行文件旁边看到了它。然后我尝试用/p:UseInteropDll=false编译System.Data.SQLite.dll,但没有成功。这次它说找不到System.Data.SQLite.dll。这个“未找到”的谜团是什么? 最佳答案
我正在尝试使用Mono创建一个Mac包。当我执行时:mkbundlefile.exe--deps-oFILE我在编译过程中得到了这个:fatalerror:"mono/metadata/mono-config.h"filenotfound我错过了什么吗? 最佳答案 关键是前面的错误(sh:pkg-config:commandnotfound),请注意,pkg-config存储在“/Library/Frameworks/Mono.framework/Commands”中。解决方案(参见here和here):将“/Library/Fra
有没有从Mono.Cecil中的TypeReference到Type的方法? 最佳答案 就“盒子里有什么”而言,您只能使用ModuleDefinition.ImportAPI将其反过来。要从TypeReference转到System.Type,您需要使用Reflection和AssemblyQualifiedName手动查找它。请注意,Cecil使用IL约定来转义嵌套类等,因此您需要进行一些手动更正。如果您只想解析非泛型、非嵌套类型,您应该没问题。要从TypeReference到TypeDefition(如果这是您的意思),您需要T
我看过讨论这两个相似框架的文章,但大多数都是两岁左右。我认为这两个项目现在都比两年前成熟得多,情况也更加复杂。鉴于每个库的当前状态,我希望有人可以详细解释每个库的优缺点,以及目前应该首选哪个库。 最佳答案 中央情报局优点:可以让您更精细地控制自己的表现最新版本比较成熟缺点:对象模型更复杂(如果您像我一样不熟悉IL/低级反射,就会感到困惑)塞西尔(指thenewergit-hubversion)优点:拥有更简单的对象模型,因此更容易上手缺点:最新版本不太成熟,因此可用的代码示例较少API正在开发中您将无法控制名称缓存(针对性能)我会选
我想编写一个小型网络服务以在小型Linux机器上运行。我更喜欢用C#编写代码,所以我希望使用Mono。我不想要运行完整Web服务器或Mono版本的ASP.NET的开销。我正在考虑让一个进程和一个线程处理每个客户端连接。线程之间共享内存而不是数据库。我阅读了一些关于Microsoft版本的HttpListener以及它如何与Http.sys驱动程序一起工作的内容。唉,Mono关于此类的文档只是自动化的类接口(interface),没有讨论它在幕后如何工作。(Linux没有Http.sys,所以我想它的实现方式大不相同。)谁能给我指点一些讨论这个模块的资源?非常感谢,比尔,billpg.c
我正在尝试将Gtk#GUI添加到Windows.Forms应用程序。我需要一种方法来隔离Program.cs中的Mono特定代码,因为我想避免创建单独的.sln/.csproj。在C/C++/Objective-C项目中,我会执行类似于#ifdef__APPLE__或#ifdef_WIN32的操作。C#似乎有#if命令。隔离特定于Mono的代码或特定于VisualStudio的代码的典型方法是什么? 最佳答案 您可以使用#define定义符号并使用#if和#else对其进行检查。您还可以使用/define将符号传递给编译器编译器选项
我正在尝试编写一些c#代码以使用Process.Start(app,args);启动浏览器,其中apps是浏览器的路径,例如/Applications/GoogleChrome.app/Contents/MacOS/GoogleChrome参数是--no-default-browser-check如果我这样做,它适用于Windows和LinuxProcess.Start("/Applications/GoogleChrome.app/Contents/MacOS/GoogleChrome","--no-first-run");我明白了open:unrecognizedoption`--
我在MonoForAndroid应用程序中序列化数据,并使用REST将其发送到使用WCF监听的.NET服务器。到目前为止,这一切都很好,但是,对于这个特定的数据协定,虽然服务器没有抛出任何错误,但数据协定中的列表显示为空。使用Fiddler并使用相同的代码创建两个项目,我能够将正常的.NETDataContractSerializer输出与Mono的DataContractSerializer实现的输出进行比较。.NET输出:truea7b97b48-d3a9-419d-9f4e-330ffc7a01eefalseSurrogateKeyfalse2013-03-05T15:43:49