Bug 54051 - [props] MtouchFloat32 property is set incorrectly via checkbox in Visual Studio
Summary: [props] MtouchFloat32 property is set incorrectly via checkbox in Visual Studio
Alias: None
Product: Visual Studio Extensions
Classification: Xamarin
Component: iOS ()
Version: 4.3.0 (C9)
Hardware: PC Windows
: Normal normal
Target Milestone: 15.2
Assignee: Bugzilla
Depends on:
Reported: 2017-03-27 13:56 UTC by Frank Buckley
Modified: 2017-04-25 12:18 UTC (History)
7 users (show)

Is this bug a regression?: ---
Last known good build:

Logs (4.13 KB, application/x-rar)
2017-04-13 11:23 UTC, Alok Kulkarni
Attaching Ide logs (3.25 KB, application/x-zip-compressed)
2017-04-25 12:18 UTC, Aman Dharwal

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 Frank Buckley 2017-03-27 13:56:17 UTC
When checking the "Perform all 32-bit float operations as 64-bit" checkbox in Visual Studio (on the "Advanced" tab of the "iOS Build" section of the project properties dialog), the value of the <MtouchFloat32> property is set to "True".

When checking the equivalent checkbox in Visual Studio for Mac, the value of the <MtouchFloat32> property is set to "false".

When unchecking, the opposite happens: VS => MtouchFloat32=false / VSMac => MtouchFloat32=true

*Unchecking* this option should set the property to *true* / *Checking* should set to *false*:


Visual Studio for Mac does the right thing. Visual Studio for Windows does not.

================ SYSTEM INFO ================

Microsoft Visual Studio Enterprise 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586

Installed Version: Enterprise

Visual Basic 2017   00369-60000-00001-AA018
Microsoft Visual Basic 2017

Visual C# 2017   00369-60000-00001-AA018
Microsoft Visual C# 2017

Visual C++ 2017   00369-60000-00001-AA018
Microsoft Visual C++ 2017

Visual F# 4.1   00369-60000-00001-AA018
Microsoft Visual F# 4.1

.ignore   1.2.71
A language service that makes it painless to handle all types of .ignore files such as .gitignore, .tfignore, etc.

ASP.NET and Web Tools 2017   15.0.30223.0
ASP.NET and Web Tools 2017

ASP.NET Core Razor Language Services   1.0
Provides languages services for ASP.NET Core Razor.

ASP.NET Web Frameworks and Tools 2017   5.2.50127.0
For additional information, visit https://www.asp.net/

Azure App Service Tools v3.0.0   15.0.30209.0
Azure App Service Tools v3.0.0

Azure Data Lake Node   1.0
This package contains the Data Lake integration nodes for Server Explorer.

Azure Data Lake Tools for Visual Studio   2.2.5000.0
Microsoft Azure Data Lake Tools for Visual Studio

Common Azure Tools   1.9
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

CSS Tools   1.0.14
Provides additional features to the CSS editor in Visual Studio.

EditorConfig Language Service   1.16.198
Language service for .editorconfig files.

EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs.

Fabric.DiagnosticEvents   1.0
Fabric Diagnostic Events

File Icons   2.6
Adds icons for files that are not recognized by Solution Explorer

A Visual Studio Extension that brings the GitHub Flow into Visual Studio.

Image Optimizer   3.6.103
Uses industry standard tools to optimize any JPEG, PNG and Gifs - including animated Gifs. Can do both lossy and lossless optimization.

JavaScript Language Service   2.0
JavaScript Language Service

JavaScript Project System   2.0
JavaScript Project System

JavaScript UWP Project System   2.0
JavaScript UWP Project System

KofePackagePackage Extension   1.0
KofePackagePackage Visual Studio Extension Detailed Info

Markdown Editor   1.11.201
A full featured Markdown editor with live preview and syntax highlighting. Supports GitHub flavored Markdown.

Merq   1.1.13-alpha (2f64b6d)
Command Bus, Event Stream and Async Manager for Visual Studio extensions.

Microsoft Azure Hive Query Language Service   2.2.5000.0
Language service for Hive query

Microsoft Azure Tools   2.9
Microsoft Azure Tools for Microsoft Visual Studio 2017 - v2.9.50131.1

Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual Studio VC Package   1.0
Microsoft Visual Studio VC Package

Mono Debugging for Visual Studio   Mono.Debugging.VisualStudio
Support for debugging Mono processes with Visual Studio.

Node.js Tools   1.3.50201.08
Adds support for developing and debugging Node.js apps in Visual Studio

NuGet Package Manager   4.0.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.

Office Developer Tools for Visual Studio 2017 ENU   15.0.26112
Microsoft Office Developer Tools for Visual Studio 2017 ENU

Open Command Line   2.1.179
Opens a command line at the root of the project. Support for all consoles such as CMD, PowerShell, Bash etc. Provides syntax highlighting, Intellisense and execution of .cmd and .bat files.

Package Security Alerts   1.0.17
Identifies npm and Bower packages that contains known security vulnerabilities to ensure your project is always using the most secure package versions.

Project File Tools   1.0.1
Provides Intellisense and other tooling for XML based project files such as .csproj and .vbproj files.

Redgate ReadyRoll
Extend DevOps processes to your SQL Server databases and safely automate database deployments.
Visit https://www.red-gate.com/readyroll for more information.

Copyright (C) 2011 Red Gate Software Ltd. All rights reserved.
This software contains components from Component Owl.
SQL Server is a registered trademark of Microsoft Corporation. 
Visual Studio is a registered trademark of Microsoft Corporation. 

ReadyRoll contains code from the following open source software:

NuGet https://www.nuget.org/
SQL LocalDB Wrapper https://github.com/martincostello/sqllocaldb
Autofac https://autofac.org/
Json.NET https://json.net/
MahApps.Metro http://mahapps.com/
SemVer https://github.com/maxhauser/semver
Menees Diff Controls http://www.menees.com/
Log4Net http://logging.apache.org/log4net/
Extended WPF Toolkit https://wpftoolkit.codeplex.com/
Code InfoBox VSX http://www.codeproject.com/Articles/55196/Code-InfoBox-Visual-Studio-Extension-VSX
OctoPack https://github.com/OctopusDeploy/OctoPack
SQLite https://sqlite.org/

This product contains icons from http://www.visualpharm.com distributed under a free backlink license.

For license details or other notices relating to the above software, please see NOTICE.TXT and EULA.rtf in the ReadyRoll application folder.

Redgate SQL Prompt
Write, format, and refactor SQL effortlessly

SQL Server Data Tools   15.1.61702.140
Microsoft SQL Server Data Tools

Syntax Highlighting Pack   2.6.118
Adds syntax highlighting and snippet support for a wide variety of programming languages such as Clojure, Go, Jade, Lua, Swift, Ruby and many more...

ToolWindowHostedEditor   1.0
Hosting json editor into a tool window

TypeScript tools for Visual Studio

Visual Studio tools for CMake   1.0
Visual Studio tools for CMake

Visual Studio Tools for Universal Windows Apps   15.0.26228.00
The Visual Studio Tools for Universal Windows apps allow you to build a single universal app experience that can reach every device running Windows 10: phone, tablet, PC, and more. It includes the Microsoft Windows 10 Software Development Kit.

Web Accessibility Checker   1.4.47
The easiest way to perform accessibility checks on any ASP.NET web application. Fully customizable and support all the major international accessibility standards.

Web Extension Pack 2017   15.0.2
The easiest way to set up Visual Studio for the ultimate web development experience.

Workflow Manager Tools 1.0   1.0
This package contains the necessary Visual Studio integration components for Workflow Manager.

Xamarin (73f58d6)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin.Android SDK (9578cdc)
Xamarin.Android Reference Assemblies and MSBuild support.

Xamarin.iOS and Xamarin.Mac SDK (35d1ccd)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.
Comment 1 Prashant [MSFT] 2017-03-28 05:11:11 UTC
Non-engineering team preliminary quick review
(See https://developer.xamarin.com/guides/cross-platform/troubleshooting/questions/howto-file-bug/ for general reference.)

## Suspected to be a regression or a problem with a new feature?
Uncertain. I was not able to reproduce the issue with VSforMac [Version Preview 5 (7.0 build 1659)] or Xamarin Studio [v 6.2 (build 1829)]

## Specific to one particular project, development computer, or target mobile device?
Uncertain. This is issue reported for VS Mac

## Includes clear steps to reproduce the problem?
Yes. But, I was not able to reproduce the issue with the steps provided.

## Considers the relevant log files for the part(s) of the process where something goes wrong (IDE editing, MSBuild building, deploying, launching, attaching the debugger, an in-app error, or something else), and has them attached?
Does include Version information from the VS for Mac

## Already took up time for many users?
Unclear. This is the only report I have seen for this issue.

## Makes development (a) difficult, impossible, or potentially hazardous, (b) moderately inconvenient, or (c) mildly inconvenient for users?
I would say (b) based on the description, but since I can not reproduce the issue it is hard to say if this is an issue with the specific project the bug reporter is using or an issue in the Xamarin tools. However it might be (b) or (c) if the issue can be avoided by editing csproj file
Comment 2 Frank Buckley 2017-03-28 08:02:46 UTC
The bug is in *Visual Studio (for Windows)*. VS for Mac and XS do the right thing.
Comment 3 Jose Gallardo 2017-04-11 20:46:08 UTC
This is not yet fixed in XVS, but will be fixed in the next release.
Comment 4 xamarin-release-manager 2017-04-12 17:10:40 UTC
Fixed in version (master)

Author: Emanuel
Commit: 42aa6363eb3762c3a82f8f7e82712ed21bc3b0a5 (xamarin/XamarinVS)
Comment 5 Alok Kulkarni 2017-04-13 07:55:49 UTC
Hi @Frank Buckley, it will be great if you can provide steps for verification?
Comment 6 Frank Buckley 2017-04-13 09:08:36 UTC
1. Open Visual Studio and create a new Blank iPad App.
2. Open project properties and navigate to iOS Build section – Advanced tab.
3. Check "Perform all 32-bit float operations as 64-bit".
4. Save the project.
5. Open the csproj file in a text editor.
6. Confirm that for the appropriate configuration (e.g. Debug|iPhoneSimulator) the property MtouchFloat32 is set to false – i.e. <MtouchFloat32>False</MtouchFloat32>
7. Open project properties and navigate to iOS Build section – Advanced tab.
8. _Un_check "Perform all 32-bit float operations as 64-bit.
9. Save the project.
10. Open the csproj file in a text editor.
11. Confirm that for the appropriate configuration (e.g. Debug|iPhoneSimulator) the property MtouchFloat32 is set to true
Comment 7 Alok Kulkarni 2017-04-13 11:23:27 UTC
Created attachment 21494 [details]

Checked with following build info :

Build info : https://gist.github.com/alok-kulkarni/d424fad4f75872e1d1de5ec020c1d888

Screen cast : https://www.screencast.com/t/uqbLVeEX2lfd

As per the steps provided, expected result fails. Kindly see the screen cast and attached logs.

Hence Reopening the bug.
Comment 9 Aman Dharwal 2017-04-25 12:18:09 UTC
Created attachment 21753 [details]
Attaching Ide logs

This Issue is Fixed , hence marking it as Verified 


Verified on Environment : 



Screencast link : https://www.screencast.com/t/npMnl2Oe