Change Log (Visual Studio Tools for Unity, Windows)
Visual Studio Tools for Unity change log.
- Added support for the new project generator in Unity 2018.1
- Fixed handling corrupted states with custom projects.
- Fixed setting the next statement.
- Fixed Mono version detection.
- Fixed timing issues with 2018.1 and plugin activation.
- Added support for .NET Standard.
- Fixed Unity target framework detection.
- Fixed breaking on exceptions that are thrown outside of usercode.
- Update UnityMessage API surface for 2017.3.
- Only reload projects on external change (with throttling).
Fixed automatic pdb to mdb debug symbol conversion.
Fixed indirect call to EditorPrefs.GetBool impacting the inspector while trying to change array size.
- Added support for 2018.1 MonoIsland reference model.
- Added support for $exception identifier.
- Added support for DebuggerHidden/DebuggerStepThrough attributes with the new Unity runtime.
- Introduce 'Latest' version for wizards.
- Fixed project guid computation for player projects.
- Fixed a race in handling breaking events.
- Refresh roslyn context before inserting method.
- Fixed automatic pdb to mdb debug symbol conversion.
- Unity projects are now automatically reloaded in Visual Studio when you add or remove a script from Unity.
Added an option to use the Mono debugger shared by Xamarin and Visual Studio for Mac to debug the Unity Editor.
Added support for portable debug symbol files.
Fixed setup dependencies issues.
Fixed Unity API help menu not showing.
Fixed player project generation when working on a UWP game with the IL2CPP/.NET 4.6 backend.
Fixed extra .dll extension wrongly added to the assembly filename.
Fixed usage of a specific project API compatibility level instead of the global one.
Do not force the AllowAttachedDebuggingOfEditor Unity flag as the default is now 'true'.
Added support for assembly.json compilation units.
Stopped copying Unity assemblies to the project folder.
Added support for setting the next statement with the new Unity runtime.
Added support for Decimal type with the new Unity runtime.
Added support for implicit/explicit conversions.
Fixed array creation with implicit size.
Fixed compiler generated items with locals.
- Fixed reference to Microsoft.CSharp for 4.6 API level.
- Fixed the Visual Studio solution generation on Unity 5.5 and previous versions.
Added support for creating structs with the new Unity runtime.
Added minimalist support for pointers.
Fixed method invocation on primitives.
Fixed field evaluation with types marked with BeforeFieldInit.
Fixed non supported calls with binary operators (substract).
Fixed issues when adding items to the Visual Studio Watch.
Fixed assembly name references with mcs.rsp files.
Fixed defines with API levels.
- Added support for cleaning the MEF cache.
Fixed classification/completion with custom attributes.
Fixed flickering with Unity messages.
- Added support for the new Unity runtime (with .NET 4.6 / C# 6 compatibility).
Added support for .NET 4.6 profile.
Added support for mcs.rsp files.
Always enable unsafe compilation switch when Unity 5.6 is used.
Added support for "Player" project generation when using Windows Store platform and il2cpp backend.
- Fixed caret position after inserting method with auto-completion.
- Removed assembly version post-processing.
This version includes all new features and bug fixes introduced with 2.8.x series.
184.108.40.206 - 3.0 Preview 3
- Fixed regression where Plugins projects where referenced twice, first as a binary DLL then as a project reference.
220.127.116.11 - 3.0 Preview 2
- Fixed a crash when starting an attribute declaration without brace completion.
Fixed function breakpoints with coroutines under the new Unity compiler/runtime.
Added warning in case of an unbindable breakpoint (when no corresponding source-location is found).
Fixed csproj generation with special/localized characters.
Fixed references outside of Assets, such as Library (like the Facebook SDK).
Added check to prevent Unity from running when installing or uninstalling.
Switched to https to target the remote Unity documentation.
18.104.22.168 - 3.0 Preview
Added Visual Studio 2017 installer support.
Added Visual Studio 2017 extension support.
Added localization support.
Added C# IntelliSense for Unity messages.
Added C# code coloration for Unity messages.
Added support for
as, direct cast,
Added support for string concat expressions.
Added support for hexadecimal display of integer values.
Added support for creating new temporary variables (statements).
Added support for implicit primitive conversions.
Added better error messages when a type is expected or not found.
Removed the CSharp suffix from the project names.
Removed reference to a system wide msbuild targets file.
Added support for Unity messages in non Behaviour types such as Editor or EditorWindow.
Switched to Roslyn to inject and format Unity messages.
Fixed a bug crashing Unity when evaluating generic types.
Fixed handling of nullable types.
Fixed handling of enums.
Fixed handling of nested member types.
Fixed collection indexer access.
Fixed support for debugging iterator frames with new C# compiler.
Fixed bug that prevented compilation when targeting the Unity Web player.
Fixed bug that prevented compilation when compiling a script with a web encoded file name.
Added an option to disable Unity console logs in Visual Studio's error list.
Added an option to allow generated project properties to be modified.
- Added Text, XML, HTML and JSON string visualizers.
- Added missing MonoBehaviors.
Fixed a conflict with ReSharper that prevented controls inside Visual Studio settings from being displayed.
Fixed a conflict with Xamarin that prevented debugging in some cases.
Fixed an issue that caused Visual Studio to freeze when debugging.
Fixed an issue with function breakpoints in Visual Studio 2015.
Fixed several expression evaluation issues.
Added smart search in the Implement MonoBehavior wizard.
Made wizards context aware; for example, NetworkBehavior messages are only available when working with a NetworkBehavior.
Added support for NetworkBehavior messages in the wizards.
Added an option to configure the visibility of MonoBehavior messages.
Removed Visual Studio property pages that are not relevent to Unity projects.
Fixed references to UnityEngine and UnityEditor on Unity 4.6.
Fixed generation of project files when Unity is running on OSX.
Fixed handling of project names containing hashmark (#) characters.
Restricted generated projects to C# 4.
Fixed an issue with expression evaluation when debugging inside a Unity coroutine.
Fixed an issue that caused Visual Studio to freeze when debugging.
- Fixed an incompatibility with the Tabs Studio Visual Studio extension.
Support machine-wide installation of VSTU (install for all users) by creating HKLM registry entries.
Fixed issues with uninstallation of VSTU when the same version of VSTU is installed for multiple different versions of Visual Studio. For example, when VSTU 2015 22.214.171.124 and VSTU 2013 126.96.36.199 were both installed.
- Support for Unity 5.2
Display menu items on Unity < 4.2
An error message is no longer displayed when Visual Studio locks XML intellisense files.
Handle <<When Changed>> conditional breakpoints when conditional argument is not a boolean value.
Fixed references to UnityEngine and UnityEditor assemblies for Windows Store apps.
Fixed error when stepping in the debugger: Unable to step, general exception.
Fixed hit-count breakpoints in Visual Studio 2015.
Fixed the conversion of debug symbols created with Visual Studio 2015 when importing a DLL and its debug symbols (PDB).
Always generate MDB files when importing a DLL and its debug symbols (PDB), except when an MDB file is also provided.
Fixed pollution of the Unity project directory with an obj directory.
Fixed generation of references to System.Xml.Link and System.Runtime.Serialization.
Added support for multiple subscribers to the project file generation API hooks.
Always complete project file generation even when one of the files to be generated is locked.
Added support for * wildcards in the extension filter when specifying files to be included in the C# project.
Visual Studio integration:
Fixed a compatibility issue with the Productivity Power Tools.
Fixed generating MonoBehaviors around events and delegates declarations.
Fixed a potential freeze when debugging.
Fixed an issue where locals would not be displayed in certain stack frames.
Fixed inspecting empty arrays.
188.8.131.52 - 2.0 Preview 2
Unity Project Explorer:
Automatically rename class when renaming a file in the Unity Project Explorer (See Options dialog).
Automatically select newly created scripts in the Unity Project Explorer.
Track the active script in the Unity Project Explorer (See Options dialog).
Dual-synchronize the Visual Studio Solution Explorer (See Options dialog).
Adopt Visual Studio icons in Unity Project Explorer.
Select the active debug target from a list of saved or recently-used debug targets (See Options dialog).
Create function breakpoints on MonoBehavior methods and apply them to multiple MonoBehavior classes.
Support Make Object ID in the debugger.
Support breakpoint hit count in the debugger.
Support break-on-exception in the debugger (Experimental. See Options Dialog).
Support creation of objects and arrays when evaluating expressions in the debugger.
Support null comparison when evaluation expressions in the debugger.
Filter out obsolete members in debugger watch windows.
Optimized Visual Studio Tools for Unity extension registration.
Install Visual Studio Tools for Unity package for Unity 5.
Documentation: Improve performance of documentation generation.
Wizards: Support new MonoBehavior methods for Unity 4.6 and Unity 5.
Unity: Lookup unsafe flags and custom defines in .rsp files during project file generation.
UI: Added Visual Studio Tools for Unity Options dialog in Visual Studio.
Unity Project Explorer:
Refresh the Unity Project Explorer after files are moved or renamed from the Visual Studio Solution Explorer.
Preserve selections when renaming files in the Unity Project Explorer.
Prevent automatic expand and collapse when files are double clicked in the Unity Project Explorer.
Ensure that newly selected files are visible in the Unity Project Explorer.
Prevent a possible Visual Studio freeze when evaluating expressions in the debugger.
Ensure that method invocations happen on the proper domain in the debugger.
Correct the location of UnityVS.OpenFile with Unity 5.
Correct the location of pdb2mdb with Unity 5.
Prevent a possible exception during project file generation.
Prevent a possible freeze when running Unity on OSX.
Handle internal exceptions.
Send Unity console logs to the VS error list.
Documentation: Correct documentation generation for the new unity documentation.
Project: Move and rename Unity .meta files when needed, even in folders.
Wizards: Correct the order of MonoBehavior method parameters when generating code.
UI: Support Visual Studio themes for context menu and icons.
184.108.40.206 - 2.0 Preview
Support for Visual Studio 2015.
Code Coloration for Unity shaders in Visual Studio 2015.
Improved visualization of values when debugging:
Better visualization for ArrayLists, Lists, Hashtables and Dictionaries.
Show Non-Public members and Static members as categories in watch and local views.
Improved display of Unity's SerializedProperty to only evaluate the value field valid for the property.
DebuggerDisplayAttribute support for classes and structs.
Make the insertion of MonoBehaviour methods using our wizards to respect the user coding conventions.
Implement support for Compile Time Text Templates in UnityVS generated projects.
Implement support for ResX resources in UnityVS generated projects.
Support opening shaders in Visual Studio from Unity.
Cleanup sockets before starting the game in Unity after Attach and Play was triggered in Visual Studio. This fixes some issues with the stability of the connection between Unity and VS when using Attach and Play.
Avoid calling methods in Unity's scripting engine debugger interface that are prone to freeze Unity. This fixes the Unity freeze when attaching the debugger.
Fix displaying of callstacks when no symbols are available.
Do not register the log callback if we don't have to.
Improve detection of Unity players.
When using our file opener, make Unity pass the line number as well as the file name.
Default to the online Unity documentation if there's no local documentation.
Fix potential Unity crash when hitting a breakpoint after a domain reload.
Fix exceptions shown in the Unity console when closing our Configuration or About windows, after a domain reload.
Fix detection of 64bits Unity running locally.
Fix filtering of MonoBehaviours per Unity version in wizards.
Fix bug where all assets were included in the project files if the extension filter was empty.
Optimize binding breakpoint to source locations.
Support for overloaded methods in the Expression Evaluation of the debugger.
Support for boxing primitives and value types in the Expression Evaluation of the debugger.
Support recreating the C# local variables environment when debugging anonymous methods.
Delete and rename .meta files when deleting or renaming files from Visual Studio.
Fix breakpoints when debugging remote editors or players compiled on another system.
Fix a possible Visual Studio crash when a breakpoint is hit.
Fix breakpoints binding to avoid breakpoints showing as unloaded.
Fix handling of variable scope in the debugger to avoid live variables that appear out of scope.
Fix lookup of static members in the Expression Evaluation of the debugger (Connect issue #953379).
Fix displaying of types in the Expression Evaluation of the debugger to show static fields and properties.
Fix generation of solution when the Unity project names includes special characters that Visual Studio forbids (Connect issue #948666).
Fix the Visual Studio Tools Unity package to immediately stop sending console events after the option has been unchecked (Connect issue #933357).
Fix detection of references to properly regenerate references to new APIs like UnityEngine.UI in the UnityVS generated projects.
Fix installer to require that Visual Studio is closed before installation to avoid corrupted installations.
Fix installer to install the Unity Reference Assemblies as a proper standalone component, shared between all versions of VSTU.
Fix opening scripts with VSTU in 64 bits versions of Unity.
In the Attach Unity Debugger window, add the ability to enter a custom IP and port to debug.
Add configuration option to set Unity to run in the background or not.
Add configuration option to generate solution and project files or project files only.
Startup target: choose to Attach to Unity or Attach to Unity and Play.
Display of multi-dimensional arrays in the debugger.
Handle new Unity Player debugging ports.
Handle references to new Unity assemblies like Unity's 4.6 GUI assemblies.
Deconstructs closures to properly display local variables when debugging.
Deconstructs generated iterators variables into arguments when debugging.
Preserve Unity Project Explorer's state after a project reload.
Add a command to synchronize the Unity Project Explorer with the current document.
Fix conditional breakpoints whose conditions are set before starting the debugger.
Fix references to UnityEngine to avoid warnings.
Fix parsing versions for Unity betas.
Fix issue where variables would not appear in the local variables window when hitting a breakpoint or stepping.
Fix variables tooltips in Visual Studio 2013.
Fix generation of the IntelliSense documentation for Unity 4.5.
Fix the Unity / Visual Studio communication after a domain reload (play/stop in Unity).
Fix handling of parts of Visual Studio themes.
C# being the predominant language in the Unity ecosystem - the new Sample Assets are in C#, the Unity documentation will default to C# - we removed our basic support for UnityScript and Boo to better focus on the C# experience. As a result, VSTU solutions are now C# only and are much faster to load.
Work around an issue in Unity's scripting engine's network layer on Mavericks for remote discovery of editors.
Handle new ports to discover remote Unity players.
Reference the UnityEngine assembly specific to the current build target.
Add setting to filter files to include in generated projects.
Add setting to disable sending console logs to Visual Studio error list. This is useful if you're using PlayMaker or Console Pro as there could be only one callback registered in Unity to receive console logs.
Add setting to disable the generation of mdb debug symbols. This is useful if you're generating the mdb yourself.
Fix a regression when files opened in VS from Unity >= 4.2 would lose IntelliSense.
Fix our VS dialogs to handle custom themes.
Fix closing the context menu of the UPE.
Prevent crash in Unity when the version specific generated assembly if out of sync.
Adjusted the MonoBehaviour wizards with Unity 4.3 APIs.
MonoBehaviour wizards are filtering Unity APIs depending on the version you use.
Add a reference to System.Xml.Linq to the projects for Unity > 4.1.
Prettify our calls to Debug.Log to not include the beginning of the stacktrace in the message.
Fixed a white pixel appearing in VS, for real this time.
Fixed deletion of the UnityVS.VersionSpecific assembly if it's marked as readonly by a SCM.
Fixed exceptions when creating sockets in the UnityVS package.
Fixed a crash in Visual Studio when loading stock images from Visual Studio assemblies.
Fixed a bug in the generation of the UnityVS.VersionSpecific for source builds of Unity.
Fixed a possible freeze when opening a socket in the Unity package.
Fixed the handling of Unity project with a dash (-) in their name.
Fixed opening scripts from Unity to not confuse the ALT+TAB order for Unity 4.2 and above.
Drastically improved debugger connection speed.
Automatically handle navigation to file and line on Unity 4.2 and above.
Project file generator now handles T4 templates.
Update MonBehavior wizards with new APIs.
IntelliSense documentation in C# for Unity types.
Arithmetic and logical expressions evaluation.
Better discovery of remote editors for the remote debugging preview.
Fixed a bug where we would leak a thread in VS after disconnecting the debugger.
Fixed a white pixel appearing in VS.
Fixed the handling of clicks on the status bar icon.
Fixed the generation of references with assemblies in Plugins folders.
Fixed creation of sockets from the UnityVS package in case of exceptions.
Fixed the detection of new versions of UnityVS.
Fixed the prompt of the license manager when the license expired.
Fixed a bug that could render the process list empty in the attach debugger to process window of VS.
Fixed changing values of Booleans in the local view.
Handle fully qualified names in expression evaluator.
Fixed a freeze related to exception handling where the Unity scripting engine is sending us incorrect stackframe data.
Fixed build process for Web targets.
Fixed an error that could happen if Visual Studio was started and that a deleted file was in the list of files to open at startup.
Fixed UnityVS.OpenFile to handle non script files, like compiled shaders.
We now reference Boo.Lang and UnityScript.Lang from all the C# projects.
Fixed generation of references in projects if the project has special characters.
Workaround a VS issue where method calls to disposed projects would trigger multiple NullReferenceException MessageBox.
Fixed handling of Unity 4.2 Beta assemblies.
Fixed local deployment of Unity assemblies for code completion in the event of an IO error (such as read-only files, or files locked by Visual Studio).
Fixed a regression where opening a script from Unity would not focus the file if it was already opened in Visual Studio.
Fixed performance issue of the new exception handling.
Fixed binding of breakpoints in some external DLLs.
Drastically improved debugger connection speed.
Optimized Unity Project Explorer for larger projects.
Honor the Visual Studio settings to break (or not) on handled and unhandled exceptions.
Honor the Visual Studio setting to call ToString on local variables.
Add new menu Debug -> Attach Unity debugger, which you can use to debug Unity players.
Preserve custom projects added to the UnityVS solution upon solution file generation.
Add new keyboard shortcut CTRL+ALT+M -> CTRL+H to display the Unity documentation for the Unity function or member at the caret position.
Take compiler response files (rsp) into account when compiling from Visual Studio.
Deconstruct compiler generated types to show variables when debugging generator methods.
Simplify the remote debugging by removing the need to configure a shared folder to Unity. Now you just need to have access to your Unity project from Windows.
Install a custom Unity profile as a standard .net target profile. This fixes all false positives that ReSharper could show.
Work around a Unity scripting engine bug, so the debugger won't break on non properly registered threads.
Rework the file opener to avoid a race condition in VS where it claimed to be able to open files, while crashing on the file open request.
UnityVS is now asking to refresh the build when VS is building the project, and not on file save anymore.
Fixed our custom .net profile
Fixed the theming integration, this fixes our issues with the VS 2012 dark theme.
Fixed quick behavior shortcut in VS 2012.
Fixed a stepping issue that could happen when debugging and a non-main thread would hit a breakpoint.
Fixed UnityScript and Boo completion of type aliases, such as int.
Fixed exception when writing a new UnityScript or Boo string.
Fixed exceptions in Unity menus when a solution was not loaded.
Fixed bug UVS-48: typing double quote sometimes produce error and break all function (code completion, syntax highlight etc).
Fixed bug UVS-46: Duplicated opened script file (UnityScript) when clicking on the Error List of Visual Studio.
Fixed bug UVS-42: Unity connectivity logo in the status bar doesn't handle mouse events in VS 2012.
Fixed bug UVS-44: CTRL+SHIFT+Q is not available in VS 2012 for Quick MonoBehaviours.
Fixed bug UVS-40: Selected items in the Unity Project Explorer are unreadable when the window is inactive in VS2012 "dark" theme.
Fixed bug UVS-39: Issue tokenizing escaped strings.
Fixed bug UVS-35: Invoke ToString on objects when inspecting variables.
Fixed bug UVS-27: Goto Symbol window inconsistency with "dark" theme in VS2012.
Fixed bug UVS-11: Locals in coroutines.
220.127.116.11 - Beta release
Fixed a Visual Studio lockup that could happen if the target debuggee is sending invalid thread events. That would typically happen when debugging a remote Unity on OSX.
Fixed a Visual Studio lockup that could happen if an exception shuts down the debugger.
Fixed our MonoBehavior helpers when a C# MonoBehavior is in a namespace.
Fixed debugger tooltips for UnityScript in Visual Studio 2012.
Fixed project generation when only debug constants are changed from Unity.
Fixed keyboard navigation in the Unity Project Explorer.
Fixed UnityScript colorization for escaped strings.
Fixed our file opener to guess better the project name when used outside of Unity. That's necessary when the user uses a third part file opener in Unity that delegates to UnityVS.
Fixed handling of long messages sent from Unity to UnityVS. Before that, long messages could crash our messaging part of UnityVS. As a consequence, sometimes UnityVS wouldn't open a file from Unity.
Fixed Visual Studio lockup that could happen when Visual Studio was deleting a breakpoint.
Fixed a bug where some breakpoints would not be hit after Unity recompiled game scripts.
Fixed the debugger to properly notify Visual Studio when breakpoints were unbound.
Fixed a registration issue that could prevent the Visual Studio debugger to debug native programs.
Fixed an exception that could happen when evaluating UnityScript and Boo expressions.
Fixed a regression where changing the .net API level in Unity would not trigger an update of the project files.
Fixed an API glitch where user code could not participate in the log callback handler.
Official support of Unity 4.
Manipulation of scripts from the Unity Project Explorer.
Integration in Visual Studio's Navigate To window.
Parsing of Info console message, so that clicking in the Error List take you to the first stackframe with symbols.
Add an API to let user participate in the project generation.
Add an API to let user participate in the LogCallback.
Fixed regression in the background of the Unity Project Explorer in Visual Studio 2012.
Fixed project generation for users of the full .net profile.
Fixed project generation for users of the Web target.
Fixed project generation to include DEBUG and TRACE compilation symbols as Unity does.
Fixed crash when using special characters in our Goto Symbol window.
Fixed crash if we can't inject our icon in Visual Studio's status bar.
Fixed the background of the Unity Project Explorer in Visual Studio 2010.
Fixed a Visual Studio freeze that could happen if UnityVS tried to attach the debugger to a Unity whose debugger interface previously crashed.
Fixed a Visual Studio freeze that could happen when a breakpoint was set and a AppDomain reload would occur.
Fixed how assemblies are retrieved from Unity to avoid locking files and confuse the Unity build process.
Fixed error handling in expression evaluation.
Fixed setting new values to fields of value types.
Fixed possible side effects when hovering over expressions from the code editor.
Fixed how types are searched in loaded assemblies for expression evaluation.
Fixed bug UVS-21: Evaluation of assignment on Unity objects has no effect.
Fixed bug UVS-21: Invalid pointer when evaluating a method invocation to Unity Math API.
Fixed the way our script opener acquired the path to the project to be sure that it is able to open both Visual Studio and the scripts.
Fixed a bug with breakpoints created while the debugging session was running that could cause Visual Studio to lock up.
Fixed how UnityVS is registered on Visual Studio 2010.
- Visual Studio 2012 support.
Fixed generation of Editor and Plugins project files to match Unity's behavior.
Fixed the translation of .pdb symbols on Unity 4.
Because of the Visual Studio 2012 support, we had to rename a few files and move some other around. The UnityVS package to import Unity is now named either UnityVS 2010 or UnityVS 2012, for respectively Visual Studio 2010 and Visual Studio 2012. This version also requires that the UnityVS project files are regenerated.
18.104.22.168 - Internal build
Fixed generation of project files when scripts or shaders had an invalid xml character.
Fixed detection of Unity instances when Unity was connected to the Asset server. This triggered failures to open files from Unity and the automatic connection of the Visual Studio debugger.
Automatic conversion of debug symbols in Unity.
If you have a .NET .dll assembly with its associated .pdb in your Asset folder, simply re-import the assembly and UnityVS will convert the .pdb into a debug symbols file that Unity's scripting engine understands, and you'll be able to step into your .NET assemblies from UnityVS.
- Fixed UnityVS crash while debugging caused by exceptions thrown by methods or properties inside Unity.
- New configuration option to disable the usage of UnityVS to open files from Unity.
Fixed generation of references to UnityEditor for non editor projects.
Fixed definition of UNITY_EDITOR symbol for non editor projects.
Fixed random VS crash caused by our custom status bar.
Fixed conflict with the PythonTools debugger.
Fixed references to Mono.Cecil.
Fixed bug in how scripting assemblies were retrieved from Unity with Unity 4 b7.
- Preview support for Unity 4.0 Beta.
Fixed the inspection of properties throwing exceptions.
Fixed descending into base objects when inspecting objects.
Fixed blank dropdown list for the insertion point in the MonoBehavior wizard.
Fixed completion for dll inside the Asset folder for UnityScript and Boo.
22.214.171.124 - Initial release