Bug 56342 - NoStdLib no longer supported / mscorlib.dll referenced multiple times
Summary: NoStdLib no longer supported / mscorlib.dll referenced multiple times
Status: RESOLVED NORESPONSE
Alias: None
Product: iOS
Classification: Xamarin
Component: General ()
Version: XI 10.10 (d15-2)
Hardware: PC Windows
: --- normal
Target Milestone: Untriaged
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2017-05-13 10:52 UTC by Jahmai
Modified: 2017-06-19 14:29 UTC (History)
3 users (show)

Tags:
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:
Status:
RESOLVED NORESPONSE

Description Jahmai 2017-05-13 10:52:48 UTC
We use NoStdLib in our Xamarin.iOS projects, and then manually reference mscorlib.dll. In 15.2, this no longer seems to work due to errors about referencing mscorlib.dll multiple times.
I removed NoStdLib from the project files, and removed the reference to mscorlib, but that results in the following warnings:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(747, 3): Tool exited with code: 134. Output: warning MT0109: The assembly 'mscorlib.dll' was loaded from a different path than the provided path (provided path: /Users/xxx/Library/Caches/Xamarin/mtbs/builds/xxx/eb778e30a80662a3fd05d0855a9574ed/bin/Ad-Hoc-Test/mscorlib.dll, actual path: /Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.33/lib/mono/Xamarin.iOS/mscorlib.dll).

------

Microsoft Visual Studio Professional 2017 
Version 15.2 (26430.6) Release
VisualStudio.15.Release/15.2.0+26430.6
Microsoft .NET Framework
Version 4.7.02046

Installed Version: Professional

Visual Basic 2017   00369-60000-00001-AA196
Microsoft Visual Basic 2017

Visual C# 2017   00369-60000-00001-AA196
Microsoft Visual C# 2017

Visual C++ 2017   00369-60000-00001-AA196
Microsoft Visual C++ 2017

Visual F# 4.1   00369-60000-00001-AA196
Microsoft Visual F# 4.1

Application Insights Tools for Visual Studio Package   8.6.00404.2
Application Insights Tools for Visual Studio

ASP.NET and Web Tools 2017   15.0.30503.0
ASP.NET and Web Tools 2017

ASP.NET Web Frameworks and Tools 2017   5.2.50303.0
For additional information, visit https://www.asp.net/

Azure App Service Tools v3.0.0   15.0.30209.0
Azure App Service Tools v3.0.0

Azure Data Lake Node   1.0
This package contains the Data Lake integration nodes for Server Explorer.

Azure Data Lake Tools for Visual Studio   2.2.5000.0
Microsoft Azure Data Lake Tools for Visual Studio

Common Azure Tools   1.9
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

Fabric.DiagnosticEvents   1.0
Fabric Diagnostic Events

JavaScript Language Service   2.0
JavaScript Language Service

JavaScript Project System   2.0
JavaScript Project System

JavaScript UWP Project System   2.0
JavaScript UWP Project System

JetBrains ReSharper Ultimate 2017.1.2    Build 108.0.20170428.75743
JetBrains ReSharper Ultimate package for Microsoft Visual Studio. For more information about ReSharper Ultimate, visit http://www.jetbrains.com/resharper. Copyright © 2017 JetBrains, Inc.

KofePackagePackage Extension   1.0
KofePackagePackage Visual Studio Extension Detailed Info

Merq   1.1.17-rc (cba4571)
Command Bus, Event Stream and Async Manager for Visual Studio extensions.

Microsoft Azure Hive Query Language Service   2.2.5000.0
Language service for Hive query

Microsoft Azure Tools   2.9
Microsoft Azure Tools for Microsoft Visual Studio 2017 - v2.9.50131.1

Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual Studio VC Package   1.0
Microsoft Visual Studio VC Package

Mono Debugging for Visual Studio   Mono.Debugging.VisualStudio
Support for debugging Mono processes with Visual Studio.

Node.js Tools   1.3.50417.1
Adds support for developing and debugging Node.js apps in Visual Studio

NuGet Package Manager   4.2.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.

PostSharp Tools for Visual Studio   5.0.24.0
PostSharp is the #1 pattern-aware extension to C# and VB.

SQL Server Data Tools   15.1.61702.140
Microsoft SQL Server Data Tools

ToolWindowHostedEditor   1.0
Hosting json editor into a tool window

TypeScript   2.2.2.0
TypeScript tools for Visual Studio

Visual Studio Tools for Universal Windows Apps   15.0.26430.06
The Visual Studio Tools for Universal Windows apps allow you to build a single universal app experience that can reach every device running Windows 10: phone, tablet, PC, and more. It includes the Microsoft Windows 10 Software Development Kit.

WiX Toolset Visual Studio Extension   0.9.17.13693
WiX Toolset Visual Studio Extension version 0.9.17.13693
Copyright (c) .NET Foundation and contributors. All rights reserved.

Xamarin   4.5.0.443 (c871575)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin.Android SDK   7.3.0.13 (448f54f)
Xamarin.Android Reference Assemblies and MSBuild support.

Xamarin.iOS and Xamarin.Mac SDK   10.10.0.30 (30b6e87)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.

--------


=== Visual Studio Professional 2017 for Mac ===

Version 7.0 (build 3146)
Installation UUID: 5782cfba-0b27-4bcc-8621-d13ae60b90a2
Runtime:
	Mono 5.0.0.100 (2017-02/9667aa6) (64-bit)
	GTK+ 2.24.23 (Raleigh theme)

	Package version: 500000100

=== NuGet ===

Version: 4.0.0.2323

=== .NET Core ===

Runtime: /usr/local/share/dotnet/dotnet
SDK: /usr/local/share/dotnet/sdk/1.0.1/Sdks
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.0.0/lib/mono/msbuild/15.0/bin/Sdks

=== Xamarin.Profiler ===

Version: 1.5.4
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

=== Xamarin.Android ===

Not Installed

=== Xamarin Inspector ===

Not Installed

=== Apple Developer Tools ===

Xcode 8.3.2 (12175)
Build 8E2002

=== Xamarin.iOS ===

Version: 10.10.0.33 (Visual Studio Professional)
Hash: 3e5ac5ff
Branch: d15-2
Build date: 2017-05-05 18:11:38-0400

=== Xamarin.Mac ===

Version: 3.4.0.33 (Visual Studio Professional)

=== Build Information ===

Release ID: 700003146
Git revision: 7553fda2e327d15807298d444007896e5b975dba
Build date: 2017-05-09 12:12:36-04
Xamarin addins: c3d580752be79fc902422f1d55d1cdc2d8b98799
Build lane: monodevelop-lion-d15-2

=== Operating System ===

Mac OS X 10.12.4
Darwin 16.5.0 Darwin Kernel Version 16.5.0
    Fri Mar  3 16:52:33 PST 2017
    root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64
Comment 1 Rolf Bjarne Kvinge [MSFT] 2017-05-16 18:17:20 UTC
Why are you referencing your own mscorlib.dll?

This is likely to cause all sorts of trouble, because the runtime is very tied to the mscorlib.dll internals.
Comment 2 Jahmai 2017-05-17 01:20:23 UTC
Because previously allowing Xamarin do implicitly include it would generated duplicate symbol errors. Defining NoStdLib and including mscorlib.dll manually resolved the issue.

"Referencing our own" isn't what's going on here, we just reference the Xamarin.iOS/Xamarin.Android mscorlib directly (which I assume it would do normally, minus something else?) just without the errors we were once getting.

Since 15.2, we've had to remove NoStdLib and our manual reference, but now it gives the message in the OP.

So:

1. What's NoStdLib for?
2. Why doesn't it work anymore?
3. Why do we have this warning even though we're now doing this the "right way"

Now that Xamarin updates are tied to VS, it's getting frustrating dealing with all the idiosyncrasies and outright bugs that come with every release, whereas before it was easier to simply not update Xamarin :(
Comment 3 Rolf Bjarne Kvinge [MSFT] 2017-05-17 08:17:08 UTC
(In reply to Jahmai from comment #2)
> Because previously allowing Xamarin do implicitly include it would generated
> duplicate symbol errors. Defining NoStdLib and including mscorlib.dll
> manually resolved the issue.

OK, this is the problem we need to fix then, you shouldn't have to do this.

Can you please attach your full build log?

To get full build logs just set the log verbosity to diagnostic at the following locations:
 - On Visual Studio for Windows: Tools > Options > Projects and Solutions > Build and Run
 - You also want to add `-v -v -v -v` to the mtouch additional arguments by right-clicking the project in the solution explorer and selecting `Properties`.
Comment 4 Jahmai 2017-05-17 10:05:47 UTC
Well the duplicate symbols error is not a problem anymore since 15.2. Now the problem is just this message:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(747, 3): Tool exited with code: 134. Output: warning MT0109: The assembly 'mscorlib.dll' was loaded from a different path than the provided path (provided path: /Users/xxx/Library/Caches/Xamarin/mtbs/builds/xxx/eb778e30a80662a3fd05d0855a9574ed/bin/Ad-Hoc-Test/mscorlib.dll, actual path: /Library/Frameworks/Xamarin.iOS.framework/Versions/10.10.0.33/lib/mono/Xamarin.iOS/mscorlib.dll)."

Which is caused by the default, implicitly included mscorlib.dll.

I'll run it with the arguments you suggested and give the output.
Comment 5 Alex Soto [MSFT] 2017-06-19 14:29:41 UTC
We have not received the requested information. If you are still experiencing this issue please provide all the requested information and re-open the bug report. Thanks!