我想知道在程序执行期间是使用Mono运行时还是Microsoft运行时执行它.
我目前正在使用以下代码来确定我是否在使用MS CLR:
static bool IsMicrosoftCLR()
{
return RuntimeEnvironment.GetRuntimeDirectory().Contains("Microsoft");
}
Run Code Online (Sandbox Code Playgroud)
但是,这在某种程度上取决于运行时的安装文件夹,我不确定这是否适用于所有安装.
有没有更好的方法来检查当前的运行时?
我无法使System.Linq(又名LINQ to Objects)工作.我正在使用Mono 2.4.4在Ubuntu 10 Lucid Lynx中运行MonoDevelop 2.2.1.
他们在他们的网站上宣传他们实施了LINQ,但我甚至找不到Enumerable.Range或者ToArray().怎么了?
空Dictionary<int, string>如何用XML中的键和值填充它
<items>
<item id='int_goes_here' value='string_goes_here'/>
</items>
Run Code Online (Sandbox Code Playgroud)
并使用XElement将其序列化为XML?
我喜欢用.NET编程,尤其是C#3.0,.NET 3.5和WPF.但我特别喜欢Mono .NET与平台无关.
现在我听说了莫诺的橄榄计划.我找不到某种Beta.
它已经有效吗?有没有人对它有任何经验?
编辑:我知道月光.但我想要一个独立的WPF应用程序.而且因为月光我希望WPF上Linux将成为现实.
我想知道是否可以在Ubuntu上运行Xamarin.我不喜欢java,所以我想用C#制作Android应用程序.
是Ubuntu的一个包,因为到目前为止我还没有见过一个?
要么...
我可以使用Wine在Ubuntu上运行Xamarin吗?
要么...
是否有在Ubuntu上运行的替代软件(具有相同的功能)?
How do I install the Mono 2.6.7 runtime on CentOS 5.5 using YUM?
I know how to build Mono from the source. However, according to the page Getting Started With Mono Tools it is possible to install the binaries directly. I'd prefer to install the binaries to avoid having to install all the development pre-requisites on a server with little disk space.
我应该向YUM添加新的存储库描述吗?我试过这样做,但我一定做错了,因为"yum list mono-core"仍然说旧版本(1.2.4-2.el5.centos).
而且,为什么.rpm在发布服务器上被称为"mono-addon-"?这有点令人困惑.听起来像.rpm是Mono的附加组件.我猜他们的意思是他们是服务器的"附件"(?).
我在OS X Mavericks上按照以下指南编译单声道:http://www.mono-project.com/docs/compiling-mono/mac/
现在,当我使用xbuild编译我的应用程序时,我收到以下错误:
CSC: error CS0518: The predefined type `System.Object' is not defined or imported
CSC: error CS0518: The predefined type `System.ValueType' is not defined or imported
CSC: error CS0518: The predefined type `System.Attribute' is not defined or imported
CSC: error CS0518: The predefined type `System.Int32' is not defined or imported
CSC: error CS0518: The predefined type `System.UInt32' is not defined or imported
CSC: error CS0518: The predefined type `System.Int64' is not defined or imported
CSC: …Run Code Online (Sandbox Code Playgroud) 将MonoDevelop的编译到ARMv6的,主要是让我能得到它在我运行树莓派?
我注意到Debian可以在Raspberry Pi上运行,而Debian有一套Mono的驱动程序.
那么这是否意味着我们将能够在Mono中发展?
我很惊讶地发现mono比.NET更快.有谁知道为什么会这样?我期待单声道比.NET慢,但至少我的实验并非如此.
我有一个带有.NET框架的windows xp笔记本电脑.我在windows xp上运行vmware vmplayer上的CentOS.我想尝试单声道.因此抓住了Mono 2.6.1源并将其安装在vmplayer的CentOS上.我已经编写了一个测试web服务应用程序,使用.Net 2.0在wndows上执行它,它工作,我将二进制文件转移到vmplayer中的centos,没有任何重新编译,并在centos上执行它.华友世纪有效!生活是美好的,然后别的东西吸引了我的注意力.在centos上执行应用程序似乎更快.我不相信自己的眼睛.
为了证实我的观察结果,我将网络排除在外,因为网络响应取决于很多外部因素.
我从互联网上抓取了小的虚拟循环代码,在windows和CentOS中执行的visual studio中编译,结果如下
Output on windows console is HelloConsole\bin\Debug>HelloConsole.exe
Result =2.66666664666712E+24
37443.6077769661 ms
Output on Centos console is [rupert@bagvapp Math.Pow]$ mono HelloConsole.exe
Result =2.66666664666712E+24
28790.6286 ms
Run Code Online (Sandbox Code Playgroud)
如果有人能解释这种行为,那就太好了.我的外行人的理解是Mono的实现比.NET框架更有效.即使我认为Mono的数学实现只是有效的.但是很多像处理财务数据,图形计算这样的实现很大程度上依赖于数学库.在没有vmware的情况下直接在Mono/Centos上执行测试会更有趣,但这需要一些时间.我会试试下周末.
public static void DummyLoop()
{
double sumOfPowers = 0;
int count = Convert.ToInt32(ConfigurationManager.AppSettings["count"]);
for (int i = 0; i < count; i++)
{
sumOfPowers += Math.Pow(i, 2);
}
Console.WriteLine("Result =" + sumOfPowers);
}
static void Main(string[] args)
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
DummyLoop();
stopWatch.Stop(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试获取SHA1指纹,以便获得Google API密钥.我在以下目录中:
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin
然后我从谷歌网站执行命令:
keytool -list -v -keystore mystore.keystore
但它给出了这个错误:
keytool error: java.lang.Exception: Keystore file does not exist: mystore.keystore
java.lang.Exception: Keystore file does not exist: mystore.keystore
at sun.security.tools.keytool.Main.doCommands(Main.java:742)
at sun.security.tools.keytool.Main.run(Main.java:340)
at sun.security.tools.keytool.Main.main(Main.java:333)
Run Code Online (Sandbox Code Playgroud)
我按照教程,但我不能让它工作!有谁知道我做错了什么?
BTW:我正在使用带有Xamarin Studio 5.5.2的Macbook Pro.