2016-09-29 10 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スクリプトだけでは問題だった場合、私はあなたが参照するDLLを探す場所をFSIを伝える部分が欠落していると言うだろうが:

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

はアズールがしないものがあります#rディレクティブで到達可能なコンテキスト内に.\binフォルダを配置しますか?

+1

動作しませんでした。面白いことに、フォルダにアクセスしてrun.fsxファイルを実行すると、(名前空間の1つが見つからない限り)うまく動作するように見えますが、紺色の関数ログには同じエラーが表示されます。 –

+1

本当にバグのようです。ドキュメントによると、それはちょうどうまくいくはずです。私はバグレポートを投稿するべきだと思う。 –

+1

@RobinHeggelundHansen:私はドキュメンテーションを見てきましたが、あなたが持っているものはちょうどうまくいくはずです。私は、 'bin'フォルダが' fsi.exe'に検索パスとして渡され、シーンの裏にあるコマンドライン引数を渡したと仮定します。これは '#I'と同じ効果があります。 – scrwtp

関連する問題