引用外部程序集失败

Referencing external assembly fails

我无法引用私有程序集。我已经按照文档进行操作,但它仍然失败并显示错误消息:

2016-09-29T19:43:08.615 startup(2,1): error FS82: Could not resolve this reference. Could not locate the assembly "Backend.dll". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. (Code=MSB3245)

这是 run.fsx 文件:

#r "Backend.dll"

open System
open System.IO
open System.Net
open System.Net.Http.Headers
open System.Collections.Generic
open CoP

let createResponse json =
    let responseJson = Request.handleJson json
    let response = new HttpResponseMessage()
    response.Content <- new StringContent(responseJson)
    response.StatusCode <- HttpStatusCode.OK
    response.Content.Headers.ContentType <- MediaTypeHeaderValue("application/json")
    response

let Run (req: HttpRequestMessage) =
    async {
        let! json = req.Content.ReadAsStringAsync()
        return createResponse json
    } |> Async.StartAsTask

我还把 Backend.dll 放在函数所在文件夹内的 bin 文件夹中。

我错过了什么?

如果那只是一个关于 .fsx 脚本的问题,我会说你错过了告诉 FSI 在哪里寻找要引用的 dll 的部分:

#I "bin"
#r "BackEnd.dll"

A​​zure 是否将 .\bin 文件夹置于 #r 指令可访问的上下文中?

看起来您 运行 遇到了 Azure Functions F# 实现中私有程序集解析的错误。 我已打开此问题进行跟踪,并将在下一个版本中包含一个修复程序: https://github.com/Azure/azure-webjobs-sdk-script/issues/733

与此同时,您应该能够使用以下方法引用您的私有程序集:

#r "bin/Backend.dll"

希望对您有所帮助!