如何使用Visual Studio在Mono上开发应用程序?这可能吗?
是否可以将LinqToSql与PostgreSQL一起使用(最好使用Mono)?你能推荐一步一步描述的文章吗?
我想弄清楚哪个是更好的方式去我们的项目.
Xamarin的PCL图书馆或共享项目.
在这里的Xamarin文档链接中,它说经验法则是在我们不共享库时选择共享项目.共享项目可以用#if编写,以确保它适用于多个平台 - 这也会导致一些重构#ifs无效的问题.
但我有一种直觉,认为将此代码放入共享类是不对的.如果Windows,Android和IOS移动平台可用的代码使用共享项目而不是PCL - 这意味着我们在共享项目中使用#ifs而不是在特定于平台的项目中编写特定于平台的代码.
这是试图通过#ifs支持非PCL项目,并使共享代码更复杂,更难维护.这不应该是Xamarin要改进.NET PCL代码库的工作吗?
而这也意味着我们将平台特定功能放在共享项目而不是平台特定项目中 - 即从平台项目本身隐藏特定平台的复杂性 - 这在架构方面感觉不对.
我是对的(在这种情况下,我与Xamarin文档相冲突)或者我错过了什么?
每次我尝试部署我的项目时,我都会收到以下错误:
编译为本机代码/ Developer/MonoTouch/usr/bin/mtouch -sdkroot"/Applications/Xcode.app/Contents/Developer"--cache"/ Users/user/Desktop/Source/iOS/obj/iPhone/Release/mtouch -cache"--nomanifest --nosign -dev"/Users/user/Desktop/Source/iOS/bin/iPhone/Release/iOS.app"-r
...
-linksdkonly -sdk"7.1"-targetver"7.1"--abi = armv7"/Users/user/Desktop/iOS/bin/iPhone/Release/iOS.exe"Xamarin.iOS 7.2.6商业版使用框架:/ Applications /Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk错误MT1009:无法复制程序集'/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll'到'/Users/user/Desktop/iOS/obj/iPhone/Release/mtouch-cache/Link/monotouch.dll':访问路径"/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll. mdb"或"/Users/user/Desktop/iOS/obj/iPhone/Release/mtouch-cache/Link/monotouch.dll.mdb"被拒绝.
我清理了obj文件夹 - 没有运气.我重新启动了mac - 没有运气.我试图去/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll但是无法访问这个文件夹 - 它说我没有权利.
可能重复:
为什么.net/C#不会消除尾递归?
请使用以下C#代码:
using System;
namespace TailTest
{
class MainClass
{
public static void Main (string[] args)
{
Counter(0);
}
static void Counter(int i)
{
Console.WriteLine(i);
if (i < int.MaxValue) Counter(++i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
C#编译器(无论如何)我会将Counter方法编译成以下CIL:
.method private static hidebysig default void Counter (int32 i) cil managed
{
.maxstack 8
IL_0000: ldarg.0
IL_0001: call void class [mscorlib]System.Console::WriteLine(int32)
IL_0006: ldarg.0
IL_0007: ldc.i4 2147483647
IL_000c: bge IL_0019
IL_0011: ldarg.0
IL_0012: ldc.i4.1
IL_0013: add
IL_0014: call void class TailTest.MainClass::Counter(int32)
IL_0019: ret
}
Run Code Online (Sandbox Code Playgroud)
上面代码的问题是它会导致堆栈溢出(在我的硬件上约为i = …
我在Mono For Android应用程序中序列化数据并使用REST将其发送到使用WCF监听的.NET服务器.到目前为止,这已经运行良好,但是,对于这个特定的数据合同,虽然服务器没有抛出任何错误,但数据合同中的列表显示为空.
使用Fiddler并使用相同的代码创建两个项目,我能够将正常的.NET DataContractSerializer输出与Mono的DataContractSerializer实现的输出进行比较.
.NET输出:
<VisitDataContractEx xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" xmlns="http://schemas.datacontract.org/2004/07/Organization.Project.DataContracts">
<_isDirty xmlns="http://schemas.datacontract.org/2004/07/Organization.DataContracts">true</_isDirty>
<_id xmlns:d2p1="http://schemas.datacontract.org/2004/07/Organization.Domain" xmlns="http://schemas.datacontract.org/2004/07/Organization.DataContracts">
<d2p1:internalValue>a7b97b48-d3a9-419d-9f4e-330ffc7a01ee</d2p1:internalValue>
</_id>
<_key xmlns="http://schemas.datacontract.org/2004/07/Organization.DataContracts">false</_key>
<_keyIdentifier xmlns="http://schemas.datacontract.org/2004/07/Organization.DataContracts">SurrogateKey</_keyIdentifier>
<ChecklistComplete>false</ChecklistComplete>
<Date>2013-03-05T15:43:49.5008406+02:00</Date>
<GpsAccuracy>1</GpsAccuracy>
<GpsLatitude>1</GpsLatitude>
<GpsLongitude>1</GpsLongitude>
<OrderComplete>false</OrderComplete>
<PhotoComplete>false</PhotoComplete>
<StockComplete>false</StockComplete>
<Sync>2013-03-05T15:43:49.5468406+02:00</Sync>
<checkListAnswers xmlns:d2p1="http://schemas.datacontract.org/2004/07/Organization.DataContracts">
<d2p1:_list>
<d2p1:IdentityDataReferenceOfCheckListAnswerDataContractExX8I0_S_SPU>
<d2p1:_dataContract z:Id="i2">
<d2p1:_isDirty>true</d2p1:_isDirty>
<d2p1:_id xmlns:d6p1="http://schemas.datacontract.org/2004/07/Organization.Domain">
<d6p1:internalValue>95ae919b-a389-4ea7-a009-af1b91890c36</d6p1:internalValue>
</d2p1:_id>
<d2p1:_key>false</d2p1:_key>
<d2p1:_keyIdentifier>SurrogateKey</d2p1:_keyIdentifier>
<Answer>false</Answer>
<checkListQuestion>
<d2p1:_dataContract i:nil="true" />
<d2p1:_description i:nil="true" />
<d2p1:_hasDataContract>false</d2p1:_hasDataContract>
<d2p1:_id xmlns:d7p1="http://schemas.datacontract.org/2004/07/Organization.Domain">
<d7p1:internalValue>176cbb31-7df2-4966-baa9-4e3cd2a0c6d5</d7p1:internalValue>
</d2p1:_id>
</checkListQuestion>
</d2p1:_dataContract>
<d2p1:_description i:nil="true" />
<d2p1:_hasDataContract>true</d2p1:_hasDataContract>
<d2p1:_id xmlns:d5p1="http://schemas.datacontract.org/2004/07/Organization.Domain">
<d5p1:internalValue>95ae919b-a389-4ea7-a009-af1b91890c36</d5p1:internalValue>
</d2p1:_id>
</d2p1:IdentityDataReferenceOfCheckListAnswerDataContractExX8I0_S_SPU>
</d2p1:_list>
</checkListAnswers>
<comments xmlns:d2p1="http://schemas.datacontract.org/2004/07/Organization.DataContracts">
<d2p1:_list />
</comments>
<directSalesAgent xmlns:d2p1="http://schemas.datacontract.org/2004/07/Organization.DataContracts">
<d2p1:_dataContract i:nil="true" /> …Run Code Online (Sandbox Code Playgroud) 我正在研究Mono和.NET C#,我们将来需要在项目开发时在Linux服务器上运行代码.此时我一直在关注ASP.NET MVC和Mono.
我运行Ubuntu发行版并希望为Web应用程序进行开发,其他一些开发人员使用Windows并使用Visual Studio运行其他.NET项目.
Mono没有提供Visual Studio的功能吗?
如果以后在Linux上运行它,我们不应该使用MonoDevelop吗?
是否有一些第三方工具或加载项可能会在以后的Mono中出现问题?
我正在openSuse下开发一个GTK#mono应用程序,但我有兴趣将它部署到所有三个平台(Windows 7,Snow Leopard以及我可以测试的许多Linux发行版).
在Linux上部署不是问题,因为GTK#带有单声道库,但对于Windows,我不想强迫用户安装GTK#.有没有办法在应用程序中嵌入GTK#,或者至少将其安装与我的程序安装集成?
我根据文档中提供的各种教程在Ubuntu 14.04上设置了VSCode - 我尽可能多地尝试了.编辑器运行没有问题,并且(在完成Mono版本差异之后)提供了与我认为的大多数替代方案相比的优越编码体验.
我的问题出现在尝试编译我的C#项目时.这是我在完成入门指南时所期望的功能.点击ctrl+ shift+后,B我最初提示创建一个tasks.json文件,该文件看起来提供了项目特定的快捷键操作配置.从最初tasks.json生成的注释中,它似乎是针对Windows并且指的tsc.exe是一个TypeScript编译器的程序.
我花了一点时间在同一台笔记本电脑上使用MonoDevelop构建项目,但从未设置过编译步骤.我错误地认为这应该是开箱即用的功能,还是我错过了正确处理C#项目的一步?