Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
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
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
GitHub or Developer Community 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.
The Windows 32-bit download from mono-project.com for 2.10.4 contains an invalid ._Microsoft.VisualBasic.dll metadata file.
Looking at it with a HEX editor it appears it was quarantined by a Mac OS X machine.
It contains the strings:
"Mac OS X"
As a result builds that directly/indirectly need this metadata file fail with:
[exec] : error CS0009: Metadata file `C:\PROGRA~2\MONO-2~1.4\lib\mono\gac\Microsoft.VisualBasic\10.0.0.0__b03f5f7f11d50a3a\._Microsoft.VisualBasic.dll' does not contain valid metadata
Looking at 2.10.3 this file seems to have the same problem
Looking at 2.10.1 this file does not exist in the install
Removing the files from the file system appear to solve the problem. It seems the compiler auto imports anything with ._ as the start of the file name. These files are still included in the default install of 2.10.3 and 2.10.4. Suggest a rebuild of 2.10.4 for Windows.
Moved to Class Libraries based on suggestion from #mono
These quarantine files appear to be present for almost all, if not all, the files in the release, so I've renamed this bug to cover the general problem.
I am not sure what is causing these files to be created, but it sounds like we can just add a packaging step to delete them if they exist before the Windows installer is created.
This is fixed in mono 2.10.5.