在我的应用程序中,所有图像,本地HTML页面等都标记为"构建操作内容".我刚刚意识到还有"资源".
我应该将哪一个用于图像,哪一个用于HTML页面在UIWebView中显示?
目前我使用这样的图像:
this.oImgLoginLogo.Image = UIImage.FromFile ( "Data/Images/ball.png" );
Run Code Online (Sandbox Code Playgroud)
但在Monotouch.Dialog中我看到这一行:
static UIImage arrow = Util.FromResource (null, "arrow.png");
Run Code Online (Sandbox Code Playgroud)
但是arrow.png也被标记为"内容"......?
困惑.
每种选择的不利/优势是什么?
我的问题是:使用MonoDevelop(这是我正在处理的许多项目的首选环境)我正在试图弄清楚如何使用资源文件来处理本地化消息以及如何将它们正确地包含在项目中作为嵌入式资源.
我的目标是为消息键及其值创建一个具有简单名称 - 值对的资源文件,并为其本地化字符串提供单独的文件,例如
Messages.resources
Hello.World = Hello World
Goodbye.Cruel.World = Goodbye, Cruel World
Run Code Online (Sandbox Code Playgroud)
Messages.de.resources
Hello.World = Hallo Welt
Goodbye.Cruel.World = Auf Wiedersehen, grausame Welt
Run Code Online (Sandbox Code Playgroud)
我有几个问题.
首先,MonoDevelop的.resources文件和Visual Studio的资源概念之间有什么区别(如果有的话).据我所知,MonoDevelop(和SharpDevelop)允许您创建.resources文件,而Visual Studio使用.resx文件并通过resgen实用程序将它们编译成.resources文件(二进制文件类型).在MonoDevelop中使用资源时,我是否需要使用resgen编译我的资源(例如Messages.resources)?当我尝试使用MonoDevelop允许我通过他们的向导创建的直接.resources文件时,我收到以下错误:
"Stream不是有效的资源文件."
其次,一旦我有一个适当生成的资源文件,我就可以将它们嵌入到我的项目中,如果我理解正确,它会使资源成为程序集的一部分.如果我有两个文件,Messages.resources和Messages.de.resources,MonoDevelop(至少)在嵌入它们时为它们分配相同的ID值.我是否需要在项目中包含我的默认本地化,然后为每个受支持的区域设置单独的项目?接下来,C#如何区分我的Messages.resources和Messages.de.resources文件(或者它们是什么文件)?
我目前正在尝试使用以下代码解析我的消息资源:
...
public string Translate(string messageKey, CultureInfo cultureInfo) {
ResourceManager resourceManager = new ResourceManager("My.Project.Messages", Assembly.GetExecutingAssembly());
string message = resourceManager.GetString(messageKey, cultureInfo);
return message;
}
...
Run Code Online (Sandbox Code Playgroud)
我觉得我在C#的国际化/本地化/全球化等方面缺少一些基本要点.我之前曾在Java上从事过国际化项目,但出于某种原因,我无法用C#来解决它.
另外,作为一个旁边 - 国际化项目中资源的"首选"目录结构是什么?
使用最新的Monodevelop和VS 2012 RC共享代码时.我可以加载和使用.sln解决方案,.csproj项目文件以及运行MonoDevelop的Mac和运行最新VS 2012 beta的Windows 7 PC的所有代码文件.源代码位于计算机之间的共享上.
这非常有效......但是在某些阶段,当我尝试在Mac上的MonoDevelop下重新加载解决方案项目时,MonoDevelop认为解决方案文件.sln是一个Hex文件并加载并在窗口中显示十六进制.它不再认为它是一个解决方案文件!
我注意到文件行以0D 0A终止,这对于PC来说是正确的..我知道Mac只使用了0D ......但它最初和它一样有用.内容看起来很好!
如果我在Mac MonoDevelop上创建一个新的解决方案,然后将现有的csproj放入其中,它可以正常工作.直到它没有....
有任何想法吗?
我想在Windows上用C#开发Win/Linux/Mac的Mono应用程序.有没有真正好的(Visual Studio可比较的)IDE?如果我能够设法Visual C# Express使用Mono编译器编译解决方案,那将是最好的.
我找到了一个#developIDE,它看起来非常酷,并且具有很多功能,Visual Studio的Express版本没有(比如TortoiseSVN,NUnit等的插件).Hovewer 3.*版本放弃了对Mono的支持,因此您无法再使用Mono编译器编译解决方案.
还有一个MonoDevelop.我试过了,很糟糕.根本不可与Visual Studio相媲美.没有WinForms设计师,+吨其他缺少的功能.我想他们是否会放弃MonoDevelop的开发并为#develop构建一个插件.
有没有其他足够好的IDE,或者是否有可能使Visual C#Express或#develop使用Mono编译器编译解决方案?
编辑:Delphi Prism看起来很酷,但它不是C#.
我遇到了MonoTouch/MonoDevelop一个非常棘手的问题.我正在尝试为MonoDevelop为iPhone构建一个Ad Hoc发行版应用.
我按照以下步骤操作:
但是,这是一个大问题,当我尝试使用以下警告在我新创建的Ad Hoc构建配置中进行编译时,我收到了构建错误:
错误:项目包ID"9UKRFP74U9.com.lc.sjd.calc"与指定的配置文件'D8B55EE9-4CB6-45E9-846A-3C94F8A51907'(SJDCalculator)不匹配
但是,重要的是,当我检查iPhone配置实用程序时,配置文件标识符和应用程序标识符完全匹配.
构建输出只能到"检测签名身份......",然后是------完成-------行.
我非常感谢您提供的任何帮助.几天来,我一直在敲打这个.
如果单声道触摸可用,那么为什么我们应该使用mac环境(sdk,xcode + Interface Builder)?
与xcode相比,monotouch的缺点是什么?
我有兴趣使用Mono for Android和MonoTouch来构建可以使用我拥有的大量C++本机库的移动应用程序.我是否可以获得有关如何调用方法或将代码合并到iOS或Android上的最终移动应用程序中的具体说明?
我在线查看了Xamarin文档,对于我来说,对于编程移动应用程序(Mono for Android和MonoTouch)的新手来说,这是非常神秘的.如果在Visual Studio中构建一个monodroid应用程序(这是我最熟悉的),我需要从MonoDroid程序调用本机函数的具体步骤是什么.对于C库,我可以用.DLL(动态)或.LIB(静态)形式编译.我还认为动态库不能用于移动应用程序.
鉴于我TryTesting在OSX上创建了一个在MonoDevelop(MD)(3.0.4.6)中调用的C#NUnit测试库,我应该如何从终端/命令行运行这些测试(以便我可以将它们添加到自动构建中)?
我知道通用公式是:
nunit-console .../TryTesting/bin/Debug/TryTesting.dll
Run Code Online (Sandbox Code Playgroud)
要么
mono nunit-console.exe .../TryTesting/bin/Debug/TryTesting.dll
Run Code Online (Sandbox Code Playgroud)
但是,考虑到安装MonoDevelop时创建的环境,仅此一点是不够的.
我得到以下输出和错误:
NUnit version 2.4.8
Copyright (C) 2002-2007 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.
Runtime Environment -
OS Version: Unix 12.1.0.0
CLR Version: 2.0.50727.1433 ( 2.10.9 (tarball Mon May 7 20:25:51 EDT 2012) )
Missing method .ctor in assembly /private/var/folders/r6/wqmfjz8142z0z9vcg_7k9y140000gn/T/nunit20/ShadowCopyCache/3688_634830482326369170/Tests/assembly/shadow/52c5f76b/6c545c94_3e91abff_00000001/TryTesting.dll, type NUnit.Framework.TestFixtureAttribute
Can't find custom attr constructor image: /private/var/folders/r6/wqmfjz8142z0z9vcg_7k9y140000gn/T/nunit20/ShadowCopyCache/3688_634830482326369170/Tests/assembly/shadow/52c5f76b/6c545c94_3e91abff_00000001/TryTesting.dll mtoken: 0x0a000003
Could not load …Run Code Online (Sandbox Code Playgroud) 我目前正在使用Mono开发一个应用程序,我最近更新到了Xamarin Studio 4.0.8,并且遇到了未添加到解决方案中的设计元素的问题.
我试图手动编辑designer.cs,后来我删除了它,希望程序能够重新生成它,并改变布局.
我试过了:
重建它
清洁和重建
通过文件资源管理器擦除文件
并且它仍然无法正常重新生成,Xamarin创建了Resource.designer.cs,但它是空的,并且在编译时返回:
Error CS0103: The name 'Resource' doesn't exist in the current context (CS0103)
Run Code Online (Sandbox Code Playgroud)
请帮忙...
我需要将google登录集成到android xamarin应用程序中.通过以下链接的代码:http: //motzcod.es/post/67077106339/google-plus-services-login-and-1-in-xamarin-android
它显示错误连接失败,并且缺少[GooglePlayServicesUtil] Google Play商店.甚至还加入了谷歌播放服务(Froyo)组件.
即使我经历了波纹管链接 https://developers.google.com/+/mobile/android/sign-in
但这与使用java代码的android eclipse有关.任何人都可以建议我在xamarin中如何做到这一点.任何提示/链接表示赞赏.谢谢.
monodevelop ×10
c# ×6
mono ×6
xamarin.ios ×5
.net ×2
iphone ×2
xamarin ×2
android ×1
build ×1
nunit ×1
objective-c ×1
resources ×1
sharpdevelop ×1
windows ×1