C# 将WIndows应用商店MonoGame应用程序转换为Android
我对Xamarin很陌生。我有一些已发布的Windows应用商店应用程序,希望将它们转换为Android。我正试图用Xamarin来做这个。我只是使用Xamarin的免费版本。到目前为止,我的情况如下: 我正在尝试两个应用程序——一个是使用Monogame构建的,另一个只是基于WinRT框架构建的。 我已经设法让他们都进入了Xamarin工作室,基本上是通过破解csproj文件 我收到生成错误,因为它缺少引用。看起来确实有一些等效的Mono/.Net4库,但是像C# 将WIndows应用商店MonoGame应用程序转换为Android,c#,android,xamarin,monogame,C#,Android,Xamarin,Monogame,我对Xamarin很陌生。我有一些已发布的Windows应用商店应用程序,希望将它们转换为Android。我正试图用Xamarin来做这个。我只是使用Xamarin的免费版本。到目前为止,我的情况如下: 我正在尝试两个应用程序——一个是使用Monogame构建的,另一个只是基于WinRT框架构建的。 我已经设法让他们都进入了Xamarin工作室,基本上是通过破解csproj文件 我收到生成错误,因为它缺少引用。看起来确实有一些等效的Mono/.Net4库,但是像Storage之类的东西似乎不见了
Storage
之类的东西似乎不见了
所以,我的问题是:我的做法是否正确?如果是,我是否遗漏了一个步骤(“转换依赖项”或其他)
如果我没有采取正确的方法,那么我应该怎么做(我发现很少有关于这个主题的在线资源)
编辑:
以下是我从Xamarin应用程序中得到的一些特定错误:
以及我的推荐人:
编辑:
经过进一步的研究,我唯一无法解释为缺少的依赖项是
Microsoft.Xna.*
。其他的都在Android/iOS上有不同的实现。这段视频可能会回答您的问题。如果存在PCL等价物,则很可能需要将引用替换为PCL等价物
您将能够使用Xamarin的大部分现有代码 但是,您在使用这些特定库时遇到的错误是因为在iOS和Android中Xamarin不存在这些库。因此,无论您拥有什么功能,都需要使用可用的库进行返工 例如,您将使用Android.OS.Storage而不是Windows.Storage 有关详细信息,请参阅他们的文档: 编辑 对于XNA,如果您使用MonoGame,所有这些都应该可以移植: 我不知道为什么它没有捆绑在Xamarin中,但这会吸引你 编辑 这是从以下Xamarin文档中获取的: 创建项目后,需要将各种Cocos2D XNA依赖项添加到解决方案中。从下载Cocos2D XNA和MonoGame源代码的位置添加以下项目:
box2d.iOS – 2D physics library. We’ll use this in later tutorials.
cocos2d.iOS – Cocos2D-XNA for iOS.
Lidgren.Network.iOS – Networking library used by MonoGame.
MonoGame.Framework.iOS – MonoGame for iOS.
您拥有的代码显然是特定于平台的。你需要把它抽象出来。没有一个向导可以获取任意代码并使其在Android上工作(至少目前还没有)。我也遇到了与Microsoft.Xna.Framework相关的错误,我认为这是Monogame框架的一部分。我认为您需要发布一些您遇到的特定错误。解决一个或两个问题可能有助于解决其余问题,但无论如何,还是要发布一些。我已经添加了从一个特定文件中得到的错误。为什么不从头开始创建项目呢?PS:我想我以前看过这段视频。我会再看一遍,但我不记得有人提到过Monogame。好吧,我是通过Windows.Storage进入这一阶段的。但是,XNA名称空间不存在。这肯定是monogame的全部症结所在吗?Windows.Data.Xml.Dom可能无法在android上使用。考虑使用Stask.xML.LIQ代替XBooX、XLead和XAttor。您可以使用条件编译。创建四个聚合平台,称它们为Windows调试和Windows发行版,以及一个Android调试和Android发行版。然后在每个平台的属性中定义符号目标为WINDOWS WIN_DEBUG、WINDOWS WIN_RELEASE、ANDROID AN_DEBUG、ANDROID AN_RELEASE。然后为Android上不支持的东西构建mono替换,并包装特定于平台的代码#如果ANROID{}I可能缺少一些东西。我已经看了monogame GitHub页面。我已经下载了这个(这样我就可以首先创建商店游戏),那么我需要如何以不同的方式安装monogame才能让Android识别它呢?