Common issues from the Xamarin 15.2 release being tracked by the Xamarin team

In case it might be useful for reference, here is an in-progress list of some commonly seen issues being tracked by the Xamarin team for the Xamarin 15.2 release. The list is sorted approximately by the number of users subscribed to each bug report, and in some cases also by additional hand-tallying. The list focuses on issues where the pattern of reports suggests a change in behavior compared to the Xamarin 15.1 release. This list is not exhaustive: It does not include every issue user-submitted issue reported since the time of the Xamarin 15.2 release.

  • Bug 56275 and developercommunity 54945 [Xamarin.VisualStudio] Significant increase in the chances of hitting “Unable to copy file “obj\Debug\App1.dll” to “bin\Debug\App1.dll”. The process cannot access the file ‘bin\Debug\App1.dll’ because it is being used by another process.” and “Exceeded retry count of 10. Failed”. Under investigation.
    • A few possible temporary workarounds are discussed on the bug report.
    • One comment on the report also indicates that installing and using the Visual Studio 2017 Preview version 15.3 might resolve the issue.
  • Bug 56246 [Mono, Xamarin.Android, Xamarin.iOS, Xamarin.Mac] Tracking bug for upstream Roslyn issue 17934: “error MSB6006: “csc.exe” exited with code 1″ due to KeyNotFoundException when compiling projects that include async partial methods. Integration of the upstream Roslyn fix is in-progress.
    • Partial temporary workaround: Switch back to mcs and xbuild (see additional details below).
  • Bug 56213 [Xamarin.VisualStudio] “Can not resolve reference: C:/Windows/Microsoft.NET/Framework/v4.0.30319/de/mscorlib.resources.dll” when building or breakpoints fail to hit on iOS devices when debugging. Now RESOLVED in the source code, and will be included in an upcoming release.
  • Bug 55087 [Xamarin.Android] “System.NotSupportedException: Stack walks are not supported on this platform – System.Reflection.MethodBase.GetCurrentMethod” when attempting to debug on x86_64 Android emulators. Now RESOLVED in the source code, and will be included in an upcoming release.
    • Partial temporary workaround: Use an x86 Android emulator rather than an x86_64 Android emulator.
  • Bug 56296 [Xamarin.Forms] “MTOUCH: error MT2001: Could not link assemblies.” when attempting to link Xamarin.Forms projects that use XamlC on iOS because XamlC does not update the new default portable .pdb debug symbol files. Now RESOLVED in the source code, and will be included in an upcoming release of Xamarin.Forms.
    • Possible temporary workaround: Disable XamlC.
    • Alternate possible temporary workaround: Switch back to mcs and xbuild (see additional details below).
  • Bug 56240 [Xamarin.Android] Performance degradation when using System.Linq.Expressions in Xamarin.Android 7.3. A candidate change has been added and will be included in an upcoming release of Xamarin.Android.
  • Bug 56238 and developercommunity 49033 [Xamarin.Android] App exits on launch or fails to hit breakpoints when debugging due to change in default build behavior when the Optimize MSBuild property is not explicitly set. Now RESOLVED in the source code, and will be included in an upcoming release.
    • Workaround: Explicitly set the Optimize property to False in the .csproj file. See the answer on the developercommunity item for a few additional details.
  • Compatibility change: [Xamarin Studio] Breakpoints no longer work for certain Xamarin project types and scenarios in Xamarin Studio 6.3 due incomplete support for the new default portable .pdb format generated by Mono 5.0.
    • Recommended solution: Install and use Visual Studio for Mac now that it is generally available and the recommended environment for Xamarin development on Mac.
    • Alternate possible temporary workaround: Switch back to mcs and xbuild (see additional details below).
  • Bug 56192 [Xamarin.VisualStudio] MultiDex is disabled after saving changes to Xamarin.Android project due to incorrect MSBuild property name <AndroidEnableMultipleDex>. Now RESOLVED in the source code, and will be included in an upcoming release.
    • Workaround: In the .csproj file, replace all occurrences of AndroidEnableMultipleDex with the correct property name AndroidEnableMultiDex using a text editor.
  • Bug 56220 [Xamarin.iOS, Xamarin.VisualStudio] “The item “C:….nuget\packages\Autofac\4.5.0\lib\netstandard1.1\Autofac.dll” in item list “ReferenceCopyLocalPaths” does not define a value for metadata “ResolvedFrom””. Under investigation. A few possible temporary workarounds are discussed on the bug report.
    • A possible temporary workaround is mentioned on the bug report.

Temporarily switching back to mcs and xbuild

The Xamarin 15.2 release includes Mono 5.0, which enables the Roslyn csc C# compiler by default and deprecates the use of xbuild in favor of msbuild. For the Xamarin toolchain, this adds C# 7 support and changes the default debugging symbol format from .mdb files to portable .pdb files. And Visual Studio for Mac uses msbuild by default when building projects.

The change from mcs to csc and xbuild to msbuild is related to several of the issues listed above. One potential workaround in those cases is to switch back to the earlier combination of mcs and xbuild without downgrading Mono or the Xamarin toolchain. As a caution, this is not a tested scenario, so although this approach has been reported to work well so far, it does still have a chance of hitting other secondary errors.

  1. Add the following PropertyGroup element to the bottom of the .csproj file for your app project just before the closing </Project> tag:
    <PropertyGroup Condition=" '$(OS)' == 'Unix' ">
        <CscToolExe>mcs.exe</CscToolExe>
    </PropertyGroup>
    
  2. Disable Visual Studio > Preferences > Build > Build with MSBuild instead of xbuild.(This setting is also available in Xamarin Studio 6.3. It is disabled by default in Xamarin Studio, but some users might have enabled it by hand in the past.)
  3. Close and reopen the solution to ensure the new setting is used.
  4. Clean and rebuild the project.