VisualStudio 2017重构不适用于F#

时间:2017-04-13 22:06:49

标签: visual-studio f# refactoring visual-studio-2017

我在F#有项目,我正在VisualStudio2017工作。我试图重构代码并使用内联,但此菜单项不可用。此外,当我点击重命名时,没有任何事情发生。

  • 为什么不可用?
  • 如何强制重构操作?

enter image description here

let blobToBlobWithInfo (b:IListBlobItem ) = 
    try
        let blobUri = b.Uri.ToString()
        let blobUriParts = blobUri.Split '/'
        let t = Array.length blobUriParts
        let integrationName =  blobUriParts.[t-2]
        if(integrationName <> "LogsToBlobService") then
            let logTime = new System.DateTime( System.Int32.Parse <| blobUriParts.[t-1].Substring(0,4), System.Int32.Parse <|blobUriParts.[t-1].Substring(4,2), System.Int32.Parse <|blobUriParts.[t-1].Substring(6,2))
            Some((b,integrationName,logTime))
        else
            None
    with
        | :? System.ArgumentException -> None
        | _ -> None

2 个答案:

答案 0 :(得分:3)

这是Visual Studio 2017中的一个已知问题。

它将在Update 2中修复。

已在此GitHub issue确认。

答案 1 :(得分:2)

Resharper的重构或VS2017是否合适?如果您只想重命名,可以将Visual F#Tools更新为myget的最新版本(将包含在答案中引用的VS更新中):
https://github.com/Microsoft/visualfsharp/wiki/Using-Nightly-Releases-of-the-Visual-F%23-Tools

例如,将csv重命名为csv2 inline:

enter image description here

enter image description here

使用最新版本的VF#Tools进行更新:

enter image description here

您也可以从这里下载: https://dotnet.myget.org/feed/fsharp/package/vsix/VisualFSharp