Bug 19253 - Remove "Xamarin.iOS Binding Project" template
Summary: Remove "Xamarin.iOS Binding Project" template
Status: VERIFIED FIXED
Alias: None
Product: Visual Studio Extensions
Classification: Xamarin
Component: iOS ()
Version: 1.12.x
Hardware: PC Windows
: Normal normal
Target Milestone: 3.9
Assignee: Joaquin Jares
URL:
Depends on:
Blocks:
 
Reported: 2014-04-23 14:57 UTC by Brendan Zagaeski (Xamarin Team, assistant)
Modified: 2014-12-04 02:41 UTC (History)
9 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 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:
VERIFIED FIXED

Description Brendan Zagaeski (Xamarin Team, assistant) 2014-04-23 14:57:47 UTC
As discussed on bug #16555, Xamarin.iOS binding projects are not supported in Visual Studio at the moment.

The "Xamarin.iOS Binding Project" template currently included with XamarinVS.iOS is not a real binding project, and should be removed. The template is in fact just a Xamarin.iOS library project.


Thanks!
Comment 1 Sadik Ali 2014-04-24 07:28:02 UTC
I have checked this issue and I am able to reproduce this issue with the help of bug #16555.

Steps to reproduce:

1. Create a new Xamarin.iOS Binding Project in Visual Studio 2013.
2. Add the following `interface` to the `ApiDefinition.cs` file:

       [BaseType(typeof(NSObject))]
       public interface Widget
       {
           [Export("center")]
           PointF Center { get; set; }
       }

3. Build the project  (Project will build successfully).
4. Update 
 
"<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.MonoTouch.CSharp.targets" />"
with
"<Import Project="$(MSBuildExtensionsPath)\Xamarin\Xamarin.ObjcBinding.CSharp.targets" />"

5. Update 
"<ProjectTypeGuids>{6BC8ED88-2882-458C-8E55-DFD12B67127B};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>"
with
"<ProjectTypeGuids>{F5B4F3BC-B597-4E2B-B552-EF5D8A32436F};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>"

5. Build the project again.

Result: compile error: "The type 'System.Drawing.PointF' exists in both
'c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Drawing.dll' and
'c:\Program Files (x86)\MSBuild\Xamarin\iOS\monotouch.dll'"

I observed that the "Xamarin.iOS binding projects" are not supported in Visual Studio. I have checked the same project in XS on mac and VS on windows and there are few changes in the ".csproject" file and the changes are as following.

Xamarin Studio template ".csproject" file contains:
 <Import Project="$(MSBuildExtensionsPath)\Xamarin\Xamarin.ObjcBinding.CSharp.targets" />

Visual Studio template ".csproject" file contains:
 <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.MonoTouch.CSharp.targets" />

 Xamarin Studio ".csproject" contains:
<ProjectTypeGuids>{F5B4F3BC-B597-4E2B-B552-EF5D8A32436F};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

Visual Studio ".csproject" contains:
<ProjectTypeGuids>{6BC8ED88-2882-458C-8E55-DFD12B67127B};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

I have also observed that when I move the same project on mac  and build that project. It is working fine.

screencast: http://www.screencast.com/t/BSZVhM8T

Environment Info:

Windows 8.1
Visual Studio 2013
Xamarin for Visual Studio   1.12.275.0 (0908d31fd2849ea1d7ec9cba9691ab83e48546a5)
Xamarin.iOS   1.12.275.0 (0908d31fd2849ea1d7ec9cba9691ab83e48546a5)
Comment 2 Daniel Cazzulino 2014-04-29 10:54:01 UTC
Actually, if the fix is simple, we want to fix it.
Comment 3 PJ 2014-05-01 20:31:00 UTC
Normal priority bug cutoff for X3.0 is today. This bug should be resolved or
increased in priority by tomorrow or it will change milestones.

I think we discussed comment 2 on the call Tuesday, and it was determined to be simple. What's the current status of the fix?
Comment 4 Joaquin Jares 2014-05-05 12:14:13 UTC
Most of the bugs here are related to this pull request: https://github.com/xamarin/monotouch/pull/40

Also, the actual report had to do with conflicting references. That is happening in btouch's use of the csc compiler. There's some magic missing there that is present in our regular use of csc. I need help from someone who knows btouch to understand how to fix it.
Comment 5 PJ 2014-05-05 12:20:23 UTC
Sounds out of scope for 2.0/3.0 (and it's past the freeze for normal bugs), updating milestone.
Comment 6 Joaquin Jares 2014-05-05 12:21:54 UTC
19256 is absolutely related (if not identical) to this one. Please change that too if updating this one.
Comment 7 Brendan Zagaeski (Xamarin Team, assistant) 2014-05-05 12:30:57 UTC
So, just to confirm, for 2.0/3.0, we'll leave the "pseudo" Xamarin.iOS Binding Project template in place?

Really the bug to _fix_ Xamarin.iOS bindings in Visual Studio is bug #16555. I filed bug #19253 and bug #19256 separately just in case it would be easy to get quick improvements in the user experience while waiting for that fix.

If you like you can close bug #19253 and bug #19256 as duplicates of bug #16555.


Thanks!
Comment 8 PJ 2014-05-08 12:07:28 UTC
Yes, it looks like Joaquin is just fixing 16555. We may still want to do this separately, so I'll leave it open now that it's been clarified.

We're past the 2.0 freeze for normal issues though, updating milestone.
Comment 10 Joaquin Jares 2014-12-03 13:51:32 UTC
Fixed in https://github.com/xamarin/XamarinVS/pull/1679
Comment 11 Prashant manu 2014-12-04 02:41:48 UTC
Checked as per description and now Xamarin.iOS binding project template is removed.
Screencast: http://screencast.com/t/AsSDwDpGFr

Environment Info:
All VS
Xamarin   3.9.94.0 (0635bc1)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin.Android   5.0.0.8 (3303f1bd2ae06398fb745b8a2f6127fc9a6535e4)
Visual Studio plugin to enable development for Xamarin.Android.

Xamarin.iOS   8.6.0.0 (22574c9788a6d607f8d119e4d645f5ce5a346553)
Visual Studio extension to enable development for Xamarin.iOS.