Bug 25582 - [XVS 3.9.221] Opening the iOS Build properties changes MtouchDebug on unmodified template projects
Summary: [XVS 3.9.221] Opening the iOS Build properties changes MtouchDebug on unmodif...
Alias: None
Product: Visual Studio Extensions
Classification: Xamarin
Component: iOS ()
Version: 3.9
Hardware: PC Mac OS
: High major
Target Milestone: 3.9
Assignee: Jose Gallardo
Depends on:
Reported: 2014-12-22 20:41 UTC by Brendan Zagaeski (Xamarin Team, assistant)
Modified: 2015-01-02 05:14 UTC (History)
6 users (show)

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:

Description Brendan Zagaeski (Xamarin Team, assistant) 2014-12-22 20:41:56 UTC
[XVS 3.9.221] Opening the iOS Build properties changes MtouchDebug on unmodified template projects

The symptoms of this bug are similar to bug 24150, but this bug is about the `MtouchDebug` property.

Regression status: Regression between 3.8.150 and 3.9.221.

## Steps to reproduce

1. Create a new iOS project, for example a "Visual C# -> iOS -> Classic API -> iPhone -> Blank App".

2. Wait for the template to finish loading.

3. Right click the project name in the Solution Explorer and select "Properties".

4. Note that the "iOS Build -> Debugging Options -> Enable Debugging" checkbox is empty and the tab shows an asterisk indicating something has changed.

5. Close the Properties pane.

6. Click the start debugging button to attempt to build and debug the app on device.

## Results

XamarinVS removes the "Enable Debugging" setting every time it opens the iOS project properties.

I suspect this corresponds to the `MtouchDebug` property in the `.csproj` file:
> <MtouchDebug>False</MtouchDebug>

This causes VS to display the following error message in an alert dialog after step 6:

> Microsoft Visual Studio
> Debug is not enabled in the current configuration. Please Start Without
> Debugging or change it in Properties -> iOS Build.

## Expected Results

Opening the project properties should not change the "Enable Debugging" setting.

## Version information

Microsoft Visual Studio Professional 2013
Version 12.0.30723.00 Update 3
Microsoft .NET Framework
Version 4.5.51641

### Bad
Xamarin (a6d269d)
Xamarin.Android (49a04b966feb40dfdba49d57ba16249b66d606a6)
Xamarin.iOS (43e3b715220b50914b45bec675e19008ff50682a)

### Bad
Xamarin (5f8a37f)
Xamarin.Android (49a04b966feb40dfdba49d57ba16249b66d606a6)
Xamarin.iOS (5d3de42232dc41c92a736286e33d9b3900a50dd7)

### Good
Xamarin (10cfd178d55287f09c85f5a1e604dfe20889a40f)
Xamarin.Android (ba9bbbdd44cfdc4bf485e8885bd2ad24fba525f7)
Xamarin.iOS (840a925103a0bf4a856507f13d5eaee3c1579c2f)

## Additional information

Here's the full PropertyGroup for the "Debug|iPhone" configuration before and after opening the Properties tab.

### Before
> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
>   <DebugSymbols>true</DebugSymbols>
>   <DebugType>full</DebugType>
>   <Optimize>false</Optimize>
>   <OutputPath>bin\iPhone\Debug</OutputPath>
>   <DefineConstants>DEBUG</DefineConstants>
>   <ErrorReport>prompt</ErrorReport>
>   <WarningLevel>4</WarningLevel>
>   <ConsolePause>false</ConsolePause>
>   <MtouchDebug>true</MtouchDebug>
>   <CodesignKey>iPhone Developer</CodesignKey>
> </PropertyGroup>

### After
> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
>   <DebugSymbols>true</DebugSymbols>
>   <DebugType>full</DebugType>
>   <Optimize>false</Optimize>
>   <OutputPath>bin\iPhone\Debug</OutputPath>
>   <DefineConstants>DEBUG</DefineConstants>
>   <ErrorReport>prompt</ErrorReport>
>   <WarningLevel>4</WarningLevel>
>   <ConsolePause>false</ConsolePause>
>   <MtouchDebug>False</MtouchDebug>
>   <CodesignKey>iPhone Developer</CodesignKey>
>   <MtouchSdkVersion>8.1</MtouchSdkVersion>
>   <MtouchLink>SdkOnly</MtouchLink>
>   <MtouchProfiling>False</MtouchProfiling>
>   <MtouchExtraArgs />
>   <MtouchFastDev>False</MtouchFastDev>
>   <MtouchEnableGenericValueTypeSharing>True</MtouchEnableGenericValueTypeSharing>
>   <MtouchArch>Default, ARMv7</MtouchArch>
>   <MtouchUseLlvm>False</MtouchUseLlvm>
>   <MtouchUseThumb>False</MtouchUseThumb>
>   <MtouchUseSGen>False</MtouchUseSGen>
>   <MtouchUseRefCounting>False</MtouchUseRefCounting>
>   <MtouchOptimizePNGs>False</MtouchOptimizePNGs>
>   <MtouchI18n />
> </PropertyGroup>
Comment 2 Jose Gallardo 2014-12-23 11:37:16 UTC
We were indeed overwriting some configurations while loading the iOS Build property panel, which was confusing and annoying.



commit: ed83307e643d758320d633897b981a1c0fa234ea
wrench: 34e781562d8fb4ba7eff85874271bce6c999619a


commit: dc27ad4f76266242b6826a6743b4d9ca4bbcfc8b
wrench: e49e2273c8171644e94af4188f79b85aeda8264b
Comment 3 Brendan Zagaeski (Xamarin Team, assistant) 2014-12-23 12:21:54 UTC
Thank for the quick fix!
Comment 4 Mohit Kheterpal 2015-01-02 05:14:14 UTC
I have checked this issue using XVS 3.9.230 and this issue is working fine now i.e. I am able to save setting of enable/disable debugging in a solution as shown in screencast : http://screencast.com/t/oygaOC2mtI


Hence closing this issue.