MSB3245:无法解析此引用(System.Drawing.Imaging)

时间:2017-02-18 09:48:41

标签: compiler-errors f# visual-studio-code f#-fake

我在Visual Studio Code中开发F#,当我尝试使用FAKE编译代码时出现上述错误:

warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Drawing.Imaging". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

然后是一长串“考虑<various filepaths>,但它不存在。”包括我的.NET Framework文件夹和GAC,这很奇怪。老实说,我希望Imaging成为System.Drawing.dll中声明的命名空间,但编译器似乎甚至没有考虑这个选项......

我与System.Windows.MediaSystem.Windows.Media.ImagingSystem.Windows.Media.IO的错误相同。可能相关的是IntelliSense没有获取这些命名空间,尽管它 找到System.Drawing.Imaging ...

1 个答案:

答案 0 :(得分:1)

碰巧的是,我在写这篇文章的时候想出了我的问题,但想到我也可以发帖,以防其他人有同样的问题。

根本问题是>F#: Add Reference无效,我的意思是,如果我点击>F#: Add Reference&gt; <current project>&gt; System.Drawing.Imaging(比如说​​),似乎没有任何特别的事情发生。如果有人可以解决这个问题并发布他们的答案,我会接受他们的并且支持它,因为这是真正的问题。

为了解决VSCode中的错误,我手动编辑了我的fsproj文件,但似乎我并不真正理解我在做什么。显然,当我使用的格式<Reference>时,它会寻找明确的dll,这当然不存在.Imaging之类的。一旦我删除了那些错误就会消失,而不会产生新的错误,比如不能像我期望的那样识别Bitmap

更新:现在还发现了Add Reference的问题:当用户名在Windows上有空格时,显然Ionide不会生成正确的Forge命令。