Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio VisualStudio 2017重构不适用于F#_Visual Studio_F#_Refactoring_Visual Studio 2017 - Fatal编程技术网

Visual studio VisualStudio 2017重构不适用于F#

Visual studio VisualStudio 2017重构不适用于F#,visual-studio,f#,refactoring,visual-studio-2017,Visual Studio,F#,Refactoring,Visual Studio 2017,我在F#有一个项目,我正在VisualStudio2017上工作。我试图重构代码并使用内联,但此菜单项不可用。另外,当我单击“重命名”时,什么也没有发生 为什么它不可用 如何强制重构操作工作 让blobToBlobWithInfo(b:IListBlobItem)= 尝试 设blobUri=b.Uri.ToString() 让bloburipart=blobUri.Split'/' 设t=Array.length bloburipart let integrationName=blobur

我在
F#
有一个项目,我正在
VisualStudio2017
上工作。我试图重构代码并使用内联,但此菜单项不可用。另外,当我单击“重命名”时,什么也没有发生

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

让blobToBlobWithInfo(b:IListBlobItem)=
尝试
设blobUri=b.Uri.ToString()
让bloburipart=blobUri.Split'/'
设t=Array.length bloburipart
let integrationName=bloburipart。[t-2]
如果(integrationName“LogsToBlobService”),则

让logTime=new System.DateTime(System.Int32.Parse这是Visual Studio 2017中的一个已知问题

它将在更新2中修复


这一点得到了证实。

这是Resharper的重构还是VS2017的正确做法?如果您只想重命名,可以从myget将Visual F#Tools更新为最新版本(将包含在答案中引用的VS更新中):

例如,将csv重命名为csv2内联:

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

您也可以从此处下载:

Visual F#Tools目前不支持Visual studio 2017>与Visual studio 2013、2015@burzhuy配合使用您没有错,但这是旧的Visual F#Power Tools。它已经贬值。现在F#Tools内置于VS2017中。但是由于VS2017 RTW的代码冻结,您得到的版本有点旧。因此您应该启用myget feed并安装最新版本的VS F#Tools。我将在我的版本中添加一个屏幕截图。谢谢,但答案只对50%有用!尽管如此,还是向上投票支持你!我已经更新了F#power Tools,但重命名是目前唯一有效的操作。“内联”仍然不可用。
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