Bug 58702 - Unable to convert existing Mac App to Xamarin.Mac unified API
Summary: Unable to convert existing Mac App to Xamarin.Mac unified API
Alias: None
Product: Xamarin.Mac
Classification: Desktop
Component: Library (Xamarin.Mac.dll) ()
Version: 3.4.0 (15.2)
Hardware: Macintosh Mac OS
: --- normal
Target Milestone: ---
Assignee: Bugzilla
Depends on:
Reported: 2017-08-10 15:47 UTC by Sid Dubey
Modified: 2017-08-15 18:27 UTC (History)
5 users (show)

Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.

Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:

Description Sid Dubey 2017-08-10 15:47:51 UTC
Unable to convert code at : https://github.com/MonoGame/MonoGame/releases/tag/v3.2 to Xamarin.Mac Unified API using steps mentioned in https://developer.xamarin.com/guides/cross-platform/macios/unified/updating-mac-apps/
Comment 1 Dominic N [MSFT] 2017-08-10 20:16:57 UTC
Hi @Sid. Could you provide some more information on what you tried (whether automated, manual, or both) as well as what didn't work during the conversion?

Comment 2 Nikhil S 2017-08-10 22:08:07 UTC
Hello Dominic,

I am building a sample application in Xamarin Mac OSX (Xamarin.Mac Project) which need to use a Monogame Framework api Version 3.2.

Scenario 1 : When I simply build the Xamarin sample application (Xamarin.Mac)(without any additional implementation of Monogame control) then the application gets compile without any error and shows the output.

Scenario 2 : When I build the application with additional implementation of Monogame window as a control the application gets compile without any error for Monogame version 3.6. (referencing Monogame.Framework.dll 3.6 version - from the nugget package).

Scenario 3 : When I build the application with additional implementation of Monogame window as a control the application gives error which is mentioned in title 
(The assembly "XamMac.dll" is not compatible with the tool or profile (MM1402)). 
 -- (referencing Monogame.Framework.dll 3.6 version dll  by compiling the Monogame Framework Source Code in Visual Studio 2017 Community - 7.0.1 Build 24).

3.A. The Monogame Framework Library Project is Migrated to the Xamarin Mac project by the Visual Studio before compilation.
3.B. The monogame Framework Library project is compiled without Migration.

In scenario 3.A. It gives me an error.. 
 - The assembly "XamMac.dll" is not compatible with the tool or profile (MM1402).

In Scenario 3.B it gives me an error..
- The assembly "MonoMac.dll" is not compatible with the tool or profile (MM1402). 

I reproduced the similar issue for the nugget package manager Monogame Framework.dll 3.2,3.3 version as well Monogame Framework source code compiled version 3.2,3.3.

But there is a dependency of XamMac even after migration of the Monogame Framework Source Code to Xamarin.Mac.

I tried to migrate the Monogame Framework Library Project to unified version by following the given steps here - 
But I am not able to port the app to Xamarin.Mac by removing XamMac.dll dependency in app.

After removal of warnings I was just able to see the option of "Migration to Xamarin.Mac" under project option.
I did the migration to Xamarin.Mac .Net Framework 4.5 and then in project references I was able to see the Xamarin.Mac dll instead of XamMac.dll (which is good).

But after migration and compilation I am getting many errors (165) out of which I am able to resolve the ones are in Using directives but It’s difficult to resolve other missing reference errors.
I also tried it to migrate to Xamarin.Mac Mobile Framework but similar 163 errors I am getting after compilation.

For my MacOS Xamarin sample app project say “ABC” (which is a unified Xamarin.Mac app) I am using reference of this compiled library project (Monogame.Framework.dll). And for that this Library project should not be XamMac.dll dependent but should be Xamarin.Mac migrated api.

Some more findings and details for your reference.

1. I need this Monogame Framework Library project dll 3.2 version because it has some old implementation which is actually supporting my Sample App ABC.

2. If I do compile Monogame Framework 3.6 latest version library project, I get same issue with compilation because of XamMac.dll and migration.

3. Monogame framework 3.6 version dll from nugget packet works well when I reference it in my sample app ABC without XamMac.dll error as in title 
(No idea how it has built/compiled after migration and how the Monogame team has resolved those 165 errors after Migration to XamarinMac unified API)).

4. Standalone 3.2 version dll from nugget packet doesn’t work well and gives the same error in title.

5. I need Monogame framework 3.2 version to build/compile after migration to XamarinMac Unified API.

Kindly Let me know if you have any thoughts or workaround.
Thank you for your support.

Comment 5 Dominic N [MSFT] 2017-08-11 20:48:01 UTC
Marking as Resolved - Answered for tracking purposes.

@Nikhil - we'll be pulling this into a conversation between Sid and our engineering team and Sid will get back to you when he has an update (I assume you had opened the issue).

@Sid - I'll pull you into a conversation with the Xamarin.Mac team to get some assistance with this. Jon G might also be a good resource here - I believe he's done some conversion in the past.
Comment 6 Nikhil S 2017-08-15 18:18:28 UTC
@Sid, @Dominic - Hello, Is there any update on this issue from a developer?