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
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.
I am trying to create a project that works on Windows and Linux and can be developed in parallel over git. When I create the project on Linux, I receive entries like this one for the GTK bindings in the .csproj file:
<Reference Include="gtk-sharp, Version=184.108.40.206, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
When I try to open the project on Windows, it tells me that the assembly is not available. When I remove the <Package> entry, it loads perfectly on Windows.
The problem is that the Linux version of Monodevelop re-creates the entries whenever any referenece is edited, so it is not possible to work together unless you manually delete the entries every time you check in a new version with changed references on Linux.
This is causing problems for me too.
As far as I can tell the Package tag serves no useful purpose. The debian packaging tools don't use them at all. I don't build RPM's so maybe it helps there. If I remove the package tags it works fine in ubuntu it builds fine and I can build my debian packages fine.
I would like to know what these tags are actually for. And if they are required for some obscure use case I would at least like a way to tell Mono Develop not to include them, because they offer no value to my project and make cross platform development very frustrating.
The Package metadata value has nothing to do with creating packages. It's the name of the pkg-config package from which MD resolved the reference, and is intended to help with resolving the reference consistently, since multiple packages can provide a single dll.
The main problem is that the Package metadata is treated as a hard requirement, not a hint, so it breaks on Windows, where assemblies do not come from packages. The other problem is that MD always adds the Package metadata, even when it's not needed, and adds it to existing references, not just new references.
I have retested in Xamarin Studio 4.0.2 (build 18) and this problem still exists. It refuses to resolve any references which have the package tag.
This means that every time I checkout on windows after committing on linux I have to rebuild my project references. This is extremely frustrating.
This is causing problems for me too. Any workaround (not including manually editing the csproj file)?
Can't seem to reproduce Package metadata being added (even for gtk# as a GAC reference). If the bug still occurs, please file another bug report.