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.
Created attachment 675 [details]
Even with the new 2.8 workflow, if you do the following:
1) create new solution
2) add a folder called screens and in it, add two dirs, /iPhone and /iPad
3) in each folder add a new file, called HomeScreen that is based on the iPhone and iPad controller templates (one for each dir).
4) double-click on either .xib file.
5) get duplicate key in dictionary error.
my understanding, is that while this is a limitation in 2.6, it shouldn't be happening in 2.8.
This is really the same issue as bug 1401, it simply shows that it's possible to create files with obj-c class names that collide. But we don't actually enforce that classes in new files don't collide with existing files even for C#. It's just more likely to happen for obj-c, because unlike C#, the obj-c name in newly created files isn't namespaced based on the folder name.
The new template system may include collision validation, but even so, it would be nice to reduce risk of collisions by having an option to take the fully qualified C# name into account when generation obj-c namespace. For example, if a template resulting in the fully qualified C# name "Foo.Bar", it could register the Obj-C name "Foo_Bar".
Repurposing to an enhancement for this.
*** This bug has been marked as a duplicate of bug 1401 ***