2016-09-29 39 views
2

我無法引用專用程序集工作。我已經遵循的文件,但它仍然失敗,出現錯誤消息:引用外部組件失敗

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在箱與該功能位於同一文件夾內的文件夾。

azure function folder structure

我缺少什麼?

回答

4

看起來像是在Azure函數F#實現中遇到了具有私有程序集解析的錯誤。 我已經打開了這個問題的追蹤,將有包括在下一版本中修復: https://github.com/Azure/azure-webjobs-sdk-script/issues/733

在此期間,你應該能夠通過使用引用您的私人集會:

#r "bin/Backend.dll"

希望這有助於!

+3

此修復程序已合併並將與下一個版本一起部署。感謝您報告這個! –

3

如果這是一個問題單獨約.fsx腳本,我會說你錯過了,你告訴FSI到哪裏尋找該dll引用部分:

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

有什麼天青確實給將.\bin文件夾放在可通過#r指令訪問的上下文中?

+1

沒有工作。有趣的是,當我訪問該文件夾並運行run.fsx文件時,它似乎工作正常(除未找到其中一個名稱空間外),但azure函數日誌顯示相同的錯誤。 –

+1

雖然看起來像一個錯誤。根據文件,它應該只是工作。我想我應該發佈一個錯誤報告。 –

+1

@RobinHeggelund漢森:我剛纔看了一下文檔,我同意你的東西應該工作。我假設'bin'文件夾通過後臺的命令行參數傳遞給'fsi.exe'作爲搜索路徑,這應該與'#I'具有相同的效果。 – scrwtp