我能否使用mono的AOT(提前编译)功能以本地方式“预编译”全部或部分我自己的.NETDLL(和/或EXE)以使它们更难进行逆向工程?我正在使用Windows(7/x64,但我也有一台x86XP机器)和.NET3.5(VS2008),我很好奇是否可以/已经将单声道/AOT用于此目的?(此时将它们绑定(bind)到x86是可以接受的。)另见thisquestion我试过这个但没有运气。 最佳答案 一旦代码被预编译,就可以删除程序集中的IL代码(这就是我们为monotuch所做的,例如,为了减少应用程序下载大小)。有一些限制,但它有效
EDIT12017/01/29-目前我们的选择是electron结合EdgeJS以及NodeJS的所有力量以及npm上的包/资源。对于我们来说,没有更好的选择可以为所有三个应用程序(macOS、linux和windows)创建跨平台应用程序。感谢大家的意见。原始问题:TL;DR-用C#(.Net/Mono)编写的后端代码。编写需要对系统进行低级别访问的桌面应用程序(跨平台OSX、Linux、Windows7至10)。寻找可以通过轮询/消息传递或调用后端代码的代码与后端代码的状态交互的一站式跨平台UI工具/框架。这个“后端”包括例如进程信息的扫描和列表、截屏等。发送网络信息(访问了哪些网
当我在Mono.net中调用PrivateFontCollection.AddFontFile方法时,它总是返回标准字体系列。这个错误已经在几个网站上报告过,但据我所知没有办法解决它。该错误本身尚未在Mono库中修复。有什么解决方法吗?编辑:作为对追随者回答的回应,我将发布代码:PrivateFontCollectionpfc=newPrivateFontCollection();pfc.AddFontFile("myFontFamily.ttf");myFontFamily=pfc.Families[0x00];FontmyFont=newFont(myFontFamily,14.0
我正在尝试将现有的C#-WPF项目移植为iPad应用程序。据我所知,最好的方法是使用MonoTouch并尽可能多地重用C#-Logic。由于原始项目是用WPF为实际的TabletPC编写的,我的问题是,如果有任何方法,可以重用WPF源代码或至少最小化我必须重新编写的部分。如果有MonoTouch的任何好的替代品,我也将不胜感激:)更新:您的评论很有帮助,但并非100%符合我的要求。MonoCross看起来不错,但据我了解,它只是“隐藏”了特定于iOS的部分。我真正喜欢的是一种重用手写“特殊”WPF控件的方法。(或者至少尽量减少转移它们的工作/时间。)这太棒了。更新2:也许我应该补充一点
我们的测试使用Microsoft.Build.Evaluation.Project.Build构建项目。适用于VS2010和2012。问题出在VS2013,它从msbuild中获取C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exever4.0.30319.18408而不是来自VS2013C:\ProgramFiles(x86)\MSBuild\12.0\Bin\MSBuild.exever12.0.21005.1有什么方法可以让它获取VS2013msbuild?可能是在调用构建方法之前添加到.proj文件或设置环境值?
我已经使用HttpListener创建了一个服务器。它在没有SSL的情况下工作完美,但使用SSL时会发生一些奇怪的事情。我已经使用httpcfg安装了证书,甚至使用我自己的程序,它安装正确,监听器启动并为HTTPS请求提供服务,但总是要求提供客户端证书。它不会发生在Windows/.net上,只有Linux/mono(我使用的是3.4.0版)才会发生,而且非常烦人,我不希望用户每次尝试登录时都被询问用于客户端证书。这是单声道错误还是有什么方法可以禁用客户端证书协商?谢谢。 最佳答案 我遇到了同样的问题。我发现这是在Mono中硬编码的
我正在使用Mono.Cecil在Assembly中查找派生自给定的类型。通常可以使用IsAssignableFrom()方法来完成,但我无法确定它在Cecil中是等效的。有没有这样的方法或其他方法来检查它?谢谢迈克 最佳答案 继承检查和“赋值兼容性”检查实际上是不同的东西。您要检查继承还是“分配兼容性”?赋值兼容性包括很多东西,包括有符号/无符号转换、枚举到基类型的转换、char至short转换、通用方差转换、从接口(interface)到object的转换,从数组到IList和IList以及它们的基本接口(interface)、数
考虑以下C#程序:usingSystem;usingSystem.Diagnostics;namespaceTest{classMainClass{publicstaticvoidMain(string[]args){Debug.Assert(false);Debug.Fail("fail!");Console.WriteLine("HelloWorld!");}}}编译时使用:dmcs-debug-d:DEBUGMain.cs然后运行它:mono--debugMain.exe断言和失败似乎被忽略了。输出只是:HelloWorld!我在StackOverflow上查看了其他相关问题,但
我第一次看Mono的源代码,我以为我会找到一堆C或C++代码,但我发现了26,192个.cs文件和7个.cpp文件。我并不完全震惊,但它让我想起了一个一直在我脑海中萦绕的问题:一个项目怎么会变成这样“自己”写的?旧版本的mono是否更多的是c/c++?或者是否有最初的努力来创建某种机器编码的编译器......这里的“技巧”是什么? 最佳答案 Mono的编译器是用C#编写的。您可能想阅读有关compilerbootstrapping的内容. 关于c#-为什么Mono源代码大部分是C#?,我
首先我们说一下当下市场的环境,目前处在一个熊市的环境下。时势造英雄:为什么当下的环境适合玩项目?熊市的资金流向会从二级市场转向资本市场。举个例子:上个熊市的初期的创世大盘,如PlusToken,WoToken,FX等等...熊市环境下资金流行向是比较明确的,有效延长项目的周期,早期加入都会有丰厚的回报,因为你是第一批,各种福利你都是第一手。接下来就来说一下参加前需要做什么准备?TreasureProject(藏宝计划)简介Treasure项目是基于区块链技术服务于Web3.0的全新金融协议,它使质押更快,更有效,参与者可以参与Treasure项目的多个生态板块,同时获得丰厚的回报Treas