Bug 26308 - [XVS.iOS 3.9] "Linker behavior" project option displays incorrect value compared to the "MtouchLink" property
Summary: [XVS.iOS 3.9] "Linker behavior" project option displays incorrect value compa...
Status: VERIFIED FIXED
Alias: None
Product: Visual Studio Extensions
Classification: Xamarin
Component: iOS (show other bugs)
Version: 3.9
Hardware: PC Windows
: High major
Target Milestone: 3.11
Assignee: Bugzilla
URL:
: 25564 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-01-22 17:11 UTC by James
Modified: 2015-07-16 16:55 UTC (History)
11 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 James 2015-01-22 17:11:15 UTC
Opening up the project settings for a Xamarin.Forms application in iOS. When opening the iOS project build properties, if you set linker behavior to a new setting, i.e. change from "Link All Assemblies" to "Link SDK assemblies only" and then save with command+s, the dirty dot goes away, but when you close, re-open the project settings the linker behavior is still set to "Link All Assemblies"

It appears the same behavior happens with "Use SGen generational garbage collector"

Verified on there different machines, screen cast here:

http://screencast.com/t/RilINPcK3jFs

Microsoft Visual Studio Professional 2013
Version 12.0.30501.00 Update 2
Microsoft .NET Framework
Version 4.5.51641

Installed Version: Professional

Xamarin   3.9.236.0 (d6a2cae)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin.Android   4.20.0.34 (49a04b966feb40dfdba49d57ba16249b66d606a6)
Visual Studio plugin to enable development for Xamarin.Android.

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

Xamarin.iOS Unified Migration   1.0
Automated migration for Xamarin iOS Classic projects to Unified
Comment 1 James 2015-01-22 17:42:55 UTC
This may be a duplicate of https://bugzilla.xamarin.com/show_bug.cgi?id=25057
Comment 2 Brendan Zagaeski (Xamarin Team, assistant) 2015-01-27 00:36:49 UTC
This bug is similar to bug 25582.

Upon further investigation, this bug does not appear to be a duplicate of bug 25057 because bug 25057 was reported against 3.8.150, and this bug does not occur on 3.8.150.


Regression status: regression between 3.8.150 and 3.9.228 (see version information below)



## Steps to reproduce

1. Open an iOS project (Classic or Unified).

2. Open the project properties.

3. Change the "iOS Build -> General [tab] -> Linker behavior" from "Link all assemblies" to "Link SDK assemblies only".

4. Save and close the project properties.

5. Re-open the project properties.

6. Toggle either the "iOS Build -> Enable Debugging" setting or the "Optimize PNG images files for iOS" setting twice. This step is just to force VS to treat the properties as if they have changed.

7. Again save, close, and re-open the project properties.



Note: I was _not_ able to hit any similar problem with the "iOS Build -> Advanced [tab] -> Use SGen generational garbage collector" setting using these steps to reproduce.


## Results

After step 3, the `.csproj` file properly records the linker setting:

> <MtouchLink>SdkOnly</MtouchLink>


At step 5, the project properties _incorrectly_ show the linker setting as "Link all assemblies".



After step 6, the `.csproj` file reflects the new _incorrect_ setting from step 5:
> <MtouchLink>Full</MtouchLink>


At step 7, the project properties _incorrectly_ show the linker setting as "Link SDK assemblies only".



## Version info

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

### Bad
Xamarin   3.9.289.0 (39a70ae)
Xamarin.Android   4.20.0.34 (49a04b966feb40dfdba49d57ba16249b66d606a6)
Xamarin.iOS   8.6.1.0 (3b3ef438017c7ecf486defa9e01567a5f2b3cb2a)

### Bad
Xamarin   3.9.236.0 (d6a2cae)
Xamarin.Android   4.20.0.34 (49a04b966feb40dfdba49d57ba16249b66d606a6)
Xamarin.iOS   8.6.0.0 (eb24bdcf5cba2c12b673a07e0a8cce368b9563b3)

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

### Good
Xamarin   3.8.150.0 (10cfd178d55287f09c85f5a1e604dfe20889a40f)
Xamarin.Android   4.20.0.28 (ba9bbbdd44cfdc4bf485e8885bd2ad24fba525f7)
Xamarin.iOS   8.4.0.0 (840a925103a0bf4a856507f13d5eaee3c1579c2f)
Comment 6 Sunil Kumar 2015-04-20 07:19:18 UTC
I have checked this issue and now this issue works fine. "Linker Behavior" project option displays correct value. Here is the screencast for the same: http://www.screencast.com/t/y1zIjAjOC

Environment info:
Microsoft Visual Studio Professional 2013
Version 12.0.31101.00 Update 4
Microsoft .NET Framework
Version 4.5.51641

Xamarin   3.11.445.0 (5061f92)
Xamarin.Android   5.1.0.115 (d23da369e436488f38c8ab8fe8a9ae7d9ea5256b)
Xamarin.iOS   8.10.0.0 (7741cc495ab0baf04ff0405d0604bc27f0ecae2e)
Comment 7 Brendan Zagaeski (Xamarin Team, assistant) 2015-07-16 16:55:31 UTC
*** Bug 25564 has been marked as a duplicate of this bug. ***