gpt4 book ai didi

visual-studio - .fsx 中的 IntelliSense 和动态加载的程序集

转载 作者:行者123 更新时间:2023-12-04 15:03:20 25 4
gpt4 key购买 nike

当使用 #I 动态引用 .fsx 中的程序集时和 #r , VS 重点介绍了以下导入类型的用法,并写道“未定义命名空间或模块‘XXX’”。可以吗?

例如,在下面的代码中

#I @".\Tools\FAKE"
#r "FakeLib.dll"

open Fake

Target "Hello" (fun _ -> trace "hello!")

Run "Hello"

VS 亮点 Fake并说“未定义命名空间或模块'Fake'”,它还突出显示 TargetRun .我在 VS 2010 SP1 和 VS 11 CTP 中有这个问题。这个问题使得编写 F# 脚本变得比它本来可以做的更难一些。

顺便说一句,“常见”类型的 IntelliSence 运行良好。 FakeLib.dllFakeLib.xml存在于 .\Tools\FAKE目录。代码运行良好。

更新 1
这是情况的屏幕截图。可以看到VS解析了程序集 FakeLib正确(在工具提示中),同时智能感知“看到”标准类型( Console 上的工具提示)类。

enter image description here

更新 2
我认为我的工作工作站上的 IntelliSense 有问题,因为它(IntelliSense)的行为很奇怪。当我启动 VS 并打开 .fsx 文件时,IntelliSense 甚至拒绝解析标准类型/类,并且它没有下划线 FAKE类,它什么都不做。但经过一段时间和对代码的一些操作后,IntelliSense 开始适用于标准类型并加下划线 FAKE类型。

此外,当我在我的家庭工作站上创建类似的代码时,没有任何问题,IntelliSense 可以正常工作。

最佳答案

如果将完整路径放入 #r 指令,您将获得完整的 IntelliSense。 #I 指令虽然方便,但会阻止 IntelliSense 正常工作,尽管代码运行良好。对于松散脚本和项目中的脚本都是如此。看看 Tomas Petricek 的 [FSharp.AsyncExtensions](http://github.com/tpetricek/FSharp.AsyncExtensions] 项目。

关于visual-studio - .fsx 中的 IntelliSense 和动态加载的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7494174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com