Can't copy XamMac.dll - Showing up as Xamarin.Mac.dll - How to fix?

Cannot copy A/bin/Debug/XamMac.dll to B/bin/Debug/XamMac.dll, as the source file doesn't exist.

Looking into the A project, it looks like it's showing up as Xamarin.Mac.dll, not XamMac.dll

What's up with this inconsistency? How do I fix it?

Best Answer


  • DanSmith.1531DanSmith.1531 USMember ✭✭

    Xamarin.Mac.dll is name of the .dll that contains the "Unified" API bindings, while XamMac.dll is the .dll that has the "Classic" bindings. If you need to copy that XamMac.dll, then your code is expecting the "Classic" api, while your application is likely building with the "Unified" api.

    I don't know of a way to manually migrate from Unified to Classic, but you might be able to "reverse" the instructions here: (Unless, of course, you have it in source control, then just pop out a revision that occurred before you did the migration to Unified)

  • BenCoulstonBenCoulston USMember

    I just migrated all of the projects in my solution to Unified so that I can support x86_64 architecture. So, I wonder why the build is expecting XamMac.dll instead of Xamarin.Mac.dll?

    Do you know where I can change this setting?

  • BenCoulstonBenCoulston USMember
    edited August 2015

    Okay. Here's the solution:

    The automatic migration tool works for almost everything, except that the following fields need to still be manually added to the csproj files:
    "TargetFrameworkVersion"v2.0"/TargetFrameworkVersion"<br /> "TargetFrameworkIdentifier"Xamarin.Mac"/TargetFrameworkIdentifier"

    Mine was still the following, and the identifier wasn't even in the csproj file:

    Markdown was removing my ><'s :(

Sign In or Register to comment.