Closed OmarTawfik closed 7 years ago
No. We haven't even planned any special vs 15 support yet.
@otawfik-ms it's kind of hard to do anything with VS 15 when you can't open F# projects in it, so testing out VFPT features isn't really feasible.
We have VFPT in VS 15, but no F# to use it with :laughing:
whoops I didn't realize when I upgraded to preview 3 it was going to leave preview 2 side by side on my machine, I just saw that preview 3 will let me install F# support for it! :tada:
After enabling diagnostics and starting up VS 15 again the first thing to greet me was -
[VFPT][Error 02:39:50 AM] Exception Message: No exports were found that match the constraint:
ContractName FSharpVSPowerTools.TaskList.CrossSolutionTaskListCommentManager
RequiredTypeIdentity FSharpVSPowerTools.TaskList.CrossSolutionTaskListCommentManager
Stack Trace: at System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(ImportDefinition definition, AtomicComposition atomicComposition)
at System.ComponentModel.Composition.Hosting.ExportProvider.GetExportsCore(Type type, Type metadataViewType, String contractName, ImportCardinality cardinality)
at System.ComponentModel.Composition.Hosting.ExportProvider.GetExportedValueCore[T](String contractName, ImportCardinality cardinality)
at FSharpVSPowerTools.PowerToolsCommandsPackage.PerformRegistrations(IGeneralOptions generalOptions)
Tried enabling all of VFPT's features, but almost none of them work
The only diagnostic message I could get to appear the output while working in an F# solution was
[VFPT][Information 02:41:45 AM] Checking projects after build done...
Hi @otawfik-ms,
Thanks for informing. We have enabled VS15 support for existing features.
VFPT have two implicit dependencies on Visual F# Tools:
sourcesAndFlags
internal field of F# project systems' OAProject
in order to retrieve resolved compiler options: https://github.com/fsprojects/VisualFSharpPowerTools/blob/eafdd518e464b241449efa2923dc66208edb23a8/src/FSharp.Editing.VisualStudio/ProjectSystem/ProjectProvider.fs#L49-L62. I hope this hasn't been changed yet.Microsoft.VisualStudio.FSharp.LanguageService.VsTextColorState.GetColorStateAtStartOfLine
and Microsoft.VisualStudio.FSharp.LanguageService.ColorStateLookup.LexStateOfColorState
to retrieve current lexer states of a position. We have fallback paths but they're really slow https://github.com/fsprojects/VisualFSharpPowerTools/blob/db3617bd2cf2babafa8c404c5c403c545e65c39c/src/FSharp.Editing.VisualStudio/ProjectSystem/VSLanguageService.fs#L72-L82. This most likely changes in F# Roslyn integration. Do you have an alternative in the new implementation? Or do you have suggestions for us to reimplement this functionality in VFPT?Other than that, if there is overlap of functionalities, we could put checks to disable those in VFPT.
@dungpa I'll try to leave the compiler server unchanged as much as possible, but the LanguageService and Editor projects are going to change. About # 1, I don't think we will change the project system. About # 2, we will forward the color handling to Roslyn. However, we need to plan when the branch is ready that any APIs that VFPT depend on are either there, or an alternative exists.
@cloudRoutine did you try to sync up and launch roslyn branch in VS 15?
@otawfik-ms I just gave it a shot, but kept running into build errors both in VS 15 and from the commandline.
I haven't been following the roslyn workspace integration too closely since I've been focusing on the internal restructuring of VFPT. I hadn't planned on looking into VS 15 compatibility until that was finished and the visualfsharp intergration was complete.
Alright. Let me know if you needed a closer look for integration and you needed help with setup. Maybe the DEVGUIDE can be updated to reflect any needed dev changes.
@otawfik-ms I uninstalled everything related to VS 15 and reinstalled it again and added the F# tools built off of master (i couldn't get the roslyn branch to build on my machine. I think something may have gone wrong with the template installation (or maybe i needed to uninstall the templates extension before installing the VSIX?) but afterward I could create F# projects and some of VFPT was working.
Although I wasn't able to specify the FSharp.Core version in the project settings.
After my first restart I started getting these error message in the activity log
<entry>
<record>167</record>
<time>2016/07/26 18:19:07.764</time>
<type>Error</type>
<source>VisualStudio</source>
<description>LegacySitePackage failed for package [FSharpProjectPackage]Source: 'FSharp.ProjectSystem.FSharp' Description: Could not load file or assembly 'Microsoft.VisualStudio.Text.Data, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Text.Data, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.VisualStudio.Text.Data, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
 at Microsoft.VisualStudio.FSharp.ProjectSystem.FSharpProjectPackage.Initialize()
 at Microsoft.VisualStudio.Shell.Package.Microsoft.VisualStudio.Shell.Interop.IVsPackage.SetSite(IServiceProvider sp)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
</description>
<guid>{91A04A73-4F2C-4E7C-AD38-C1A68E7DA05C}</guid>
<hr>80070002</hr>
<errorinfo></errorinfo>
</entry>
<entry>
<record>551</record>
<time>2016/07/26 18:21:59.363</time>
<type>Error</type>
<source>VisualStudio</source>
<description>CreateInstance failed for package [Microsoft.VisualStudio.Editor.Implementation.EditorPackage]Source: 'mscorlib' Description: Could not load file or assembly 'Microsoft.VisualStudio.Editor.Implementation, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Editor.Implementation, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.VisualStudio.Editor.Implementation, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
 at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
 at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
 at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
 at System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
 at System.Activator.CreateInstance(String assemblyName, String typeName)
 at System.AppDomain.CreateInstance(String assemblyName, String typeName)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
</description>
<guid>{E269B994-EF71-4CE0-8BCD-581C217372E8}</guid>
<hr>80004005 - E_FAIL</hr>
<errorinfo></errorinfo>
</entry>
I'll investigate further later
@cloudRoutine it appears to be a Roslyn dependency. What preview # of VS were you trying?
Microsoft Visual Studio Enterprise 15 Preview 3
Version 15.0.25428.1 PREVIEW
Microsoft .NET Framework
Version 4.6.01532
Installed Version: Enterprise
Architecture and Modeling Tools 00369-50000-00000-AA689
Microsoft Architecture and Modeling Tools
UML® and Unified Modeling Language™ are trademarks or registered trademarks of the Object Management Group, Inc. in the United States and other countries.
Visual Basic 15 Preview 3 00369-50000-00000-AA689
Microsoft Visual Basic 15 Preview 3
Visual C# 15 Preview 3 00369-50000-00000-AA689
Microsoft Visual C# 15 Preview 3
Visual C++ 15 Preview 3 00369-50000-00000-AA689
Microsoft Visual C++ 15 Preview 3
Visual F# $(VSGeneralBrandVersion)$(VSGeneralBrandRelease) 00369-50000-00000-AA689
Microsoft Visual F# $(VSGeneralBrandVersion)$(VSGeneralBrandRelease)
Common Azure Tools 1.7
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.
Extensibility Tools 1.8.175
Contains numerous tools and helpers that makes it easier than ever to build Visual Studio extensions.
Indent Guides 15
Indent Guides
Adds visual guides at each indentation level.
JavaScript Language Service 2.0
JavaScript Language Service
JavaScript Project System 2.0
JavaScript Project System
NuGet Package Manager 3.4.2
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.
Parallel Debugger 1.0
Concurrency debugging
SQL Server Data Tools 15.0.60611.0
Microsoft SQL Server Data Tools
TypeScript 1.9.0.0
TypeScript tools for Visual Studio
Visual F# Power Tools 2.5.0
A collection of additional commands for F# in Visual Studio
Visual Studio Tools for Unity 2.2.0.0
Visual Studio Tools for Unity
VSColorOutput 2.4
Color output for build and debug windows - http://mike-ward.net/vscoloroutput
We are not going to support VS 2017.
@dungpa
With the changes being done in roslyn branch of F# repository, we need to be aware of breaking changes that might impact VFPT in Visual Studio 15. Is there active development now on VFPT that is targeting VS 15?