Debugging MonoMac apps using Mono Tools and Visual Studio - visual-studio

If a MonoMac app has been compiled on MonoDevelop, can it be remotely debugged via Mono-tools (or anything else) on Visual Studio running on a Windows machine?
Scenario
Several library assemblies are compiled on Windows .NET and copied over to a Mac. Their symbols are then converted from .pdb to mono's .mdb format using pdb2mdb.
The final executable that references the libraries is compiled on MonoDevelop on a Mac. This produces the .app bundle that contains the plist, xibs and the referenced library assemblies.
This app can currently be run and debugged on Mac using MonoDevelop.
Question: Is there a way to remotely debug the app using Visual Studio?
Research
Mono-tools seems to be a good starting point, but it seems to require that the entire app be compiled in Visual Studio. This is not possible with a MonoMac app.
Looked for the sources for mono-tools but could not find any. Also could not find a third party solution for this scenario.

Related

Compile OSX app on Windows with Xamarin

I have a Xamarin Mac app I've been handed to make some changes. I've got everything working correctly as far as Windows Visual Studio Xamarin connecting to Mac Xamarin -- the Mac ssh agent works and whatnot.
However, how do I compile the app? When I build it on Windows, it generates an .exe file. Is something supposed to be generated on the Mac side, too? Or do I take that .exe file and somehow package it into an OSX app?
I was trying to stay in my Windows environment to do the coding and building as much as possible.
Thank you.
You will need to compile/package/debug it on macOS.
The build process is performed locally on Windows, generating IL assemblies that cannot be used for running or debugging apps, and it doesn't create application bundles.
re: https://developer.xamarin.com/releases/vs/xamarin.vs_4/xamarin.vs_4.2/#Xamarin.Mac_minimum_support.
macOS Apps
Mac apps can be opened and compiled in Visual Studio to check for errors, however to debug or create a working executable the project must currently be built on a Mac. This limited support for Mac projects allows for easier code sharing in Visual Studio between iOS, Android, Windows, and Mac apps.
re: https://developer.xamarin.com/guides/cross-platform/windows/visual-studio/#macOS_Apps

Why would the following errors occur in Xamarin Studio on OS X but not in Visual Studio?

I'm trying to understand why I'm getting the following errors when running tests in Xamarin Studio 5.9.1 (build 3) on OS X.
System.IO.FileNotFoundException : Could not load file or assembly 'System.Net.Http, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
System.TypeLoadException : A type load exception has occurred.
All projects build successfully and the same tests run just fine in Visual Studio on Windows using the same solution.
I am seeing a warning when building the test project on OS X, despite having already installed and added the reference.
All projects referencing MyProject.fsproj must install nuget package Microsoft.Bcl.Build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317569.
I still don't know why Xamarin behaves differently than Visual Studio, but the root cause was that the test project was targeting .Net 4.5 whereas the main project was targeting .Net 4.0
Thanks to #7sharp9 for the help.
Different platforms (Android, iOS, Desktop) have different System.Net.Http.dll binaries - compiled from the same source, but each version references the mscorlib.dll (and other base-class libraries) from the platform it was built against.
This is not a problem when you use it in an application - Xamarin Studio will automatically pick the right version for you - but you can't use it in a Portable Class Library.
Microsoft initially implemented HttpClient as part of .NET 4.5, but then released a portable version of it (with a Windows-only license). If I understand this correctly, then that's mostly the same API as in .NET 4.5 plus a few minor additions (I think they added gzip compression, which Mono's version currently doesn't).
For Xamarin / Mono, all we need to do to create an open-source version of this library is to take our existing sources and compile them against the portable profile. I haven't tried this yet, but this could be as easy as editing the .csproj file and replacing the .
Also would suggest that you install HttpClient NuGet package
System.Net.Http.HttpClient is available directly from the latest version of Xamarin.
Simply check for updates from Xamarin Studio ;-)

port an existing c++11 app which runs on Android and IOS to Windows Phone 8

currently I have to port an existing mobile application which runs on Android and IOS to Windows 8. Unfortunately it is using a lot of C++11 Stuff, which is not supported by Windows Phone 8.0. The project itself was written with cocos2d-x 2.0. It contains a C# Part which loads a C++ library with the major part of the application. Also it includes modules from "Project Angle", which is a library to convert OpenGL calls into DirectX calls.
The first thing I tried was to upgrade the project to Windows Phone 8.1 using the 'reassign project' option from Visual Studio. I still had to remove a bit of C++11 Code, but now at least the project itself compiles. After compiling I got some linker errors for functions like 'getenv'. The angle libraries don't even compile and gives me errors like 'Cant find include file vccorlib.h' for every single source file.
Since I'm completely new to Windows development, I don't know if something went wrong on upgrading the projects, or if I have to fix something within the projects. But I tried to upgrade an other project, which was already ported to WP8, and got the same errors.
Now I have to deceide if I have to fix the Windows Phone 8.1 version or if it's easier to remove C++11 Code for 8.0 (which means a few days of work and let my heart bleed)
I also found a compiler update for Visual Studio 2012, which has extended support for C++11, but it seems it's not compatible for Windows Phone.
I hope someone of you could give me a hint, what I have missed for WP 8.1 or has another idea. Thanks for your help!
Cocos2d-x should work on Windows Phone, but you have to get the right version. You can't use pre-built binaries for other platforms (even desktop Windows) and you need to make sure you're building correctly. See the download page.
Visual Studio 2013 Update 4 is the latest stable release of VS that supports Windows Phone projects; you can see the level of C++11 support listed here along with support in the not-yet-finished Visual Studio 2015 compiler.

Monogame and MonoDevelop missing IDE MacOSX

I tried installing monogame and monodevelop but after downloading and installing the required applications there is no Monogame IDE in my application folder.
What i did was the following:
Started on the monogame download page (http://www.monogame.net/downloads) and followed the corresponding links to download these files for OSX:
Xamarin Studio 4.0.12 installer
Mono + GTK# to which it linked me to the mono download page to which i download
The Runtime and SDK files for OSX Version 2.10.x
I installed each program in the corresponding order and continues the installation process by downloading the MonoGame installation V3.0.1 for Xamarin and MonoDevelop because i wasnt sure which one to get. But when I couldn't simply drag or click to install I looked in my application folder there was no Monogame IDE only the Xamarin Studio IDE which I presume is the correct process. But When I opened the Xamarin IDE it says that I've download the starter version and I cannot use Monogame.
Aside from the monogame website and various googling instructions, I've tried following these very clear instruction from this blog (http://mastrgamr.net/xna/programming-xna-on-mac/) but got stuck when I could find nor open my MonoGame and the Xamarian IDE displaying the correct screen.
I do not understand what I am doing wrong as the installation instructions seem very clear.
EDIT:
So i found out that Xamarian IDE replaced the MonoDeveloper IDE though the instructions I've found are using MonoDeveloper IDE as the example. I'm not sure if theres a significant difference but I presume there is a difference as I still can't seem to run monoGame and the outdated instructions aren't syncretic with my actions. Can anyone provide me with updated Xamarian instructions?
A little while ago Xamarin replaced MonoDevelop with Xamarin Studio. So MonoDevelop is now called Xamarin Studio and it looks and behaves a little different. That's why any tutorials talking about MonoDevelop are going to be a little confusing.
I've never tried to install Xamarin Studio on a Mac so I'm not sure what the error is about the starter version. However, I suspect it might be talking about the Xamarin licensing.
What I can tell you is, you won't be able to develop games with MonoGame on the starter edition if you are targeting platforms other than Windows (this includes Android, iOS and I presume Mac) due to the limited app size. You should consider buying a license from Xamarin if this is indeed your issue.

Is it possible to build a Monotouch application in Visual Studio?

I would like to know if it is possible to compile a Monotouch project that does not have any reference to any UI library in Visual Studio. This project only use the Monotouch framework.
I have done some research and I read that, if the project don't have any reference to the Apple SDK , I should be able to build a MonoTouch project using Visual Studio. If I can, do i need some particular configuration to achive my goal.
Some related links:
How easy is it to develop an iPhone application using MonoTouch in Visual Studio?,
How can I develop for iPhone using a Windows development machine?,
iPhone development on Windows
Even if your project doesn't have any references to MonoTouch libraries, it is still a MonoTouch library project. Visual studio doesn't recognize that project type and because of that you can't really compile the code.
I wrote about this a while ago, and how you can change your project so you can actually use Visual Studio for development (although you won't be able to run the app) here:
http://escoz.com/blog/developing-with-monotouch-on-windows-and-visual-studio
Hope that helps.
There is a Visual Studio addin that may help. It hasn't been updated in a while though. Also, this would only help you write the code. To compile and run the code, you will still need MonoTouch and a Mac. https://github.com/follesoe/VSMonoTouch
Update : As of February, 2013 Xamarin includes Visual Studio support for developing iOS apps in their Business sku of Xamarin.iOS. You can fully develop on Windows + Visual Studio, but still need a Mac on your network to perform builds and run the simulator.
If you're talking about building a DLL or library in VS.NET that you could then use in a MonoTouch project, I believe the answer is NO. To be usable in MT, the code has to be compiled with MT.
The MonoDevAssist VS extension (search VS Extension Manager for "monotouch") seems to work perfectly. There are just a couple of easy steps to follow post-installation, which are documented here:
http://monodevassist.codeplex.com/documentation

Resources