2016-04-08 60 views
0

我正在使用Azure函數,並且想要編寫讀取/寫入Dynamics CRM Online的代碼。根據Microsoft的文檔,我將CRM 2015 SDK DLL(全部)添加到了function.json文件所在位置的bin文件夾中。爲什麼我的Azure函數找不到Microsoft.Xrm.Sdk程序集依賴項?

函數編譯得很好。

當運行功能我得到這個錯誤:

異常而執行功能:Functions.CrmTest1。 mscorlib:異常已被調用的目標拋出。無法加載文件或程序集「Microsoft.Xrm.Sdk,Version = 7.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35」或其某個依賴項。該系統找不到指定的文件。

這裏的函數體(只是小試樣品):

#r "Microsoft.Xrm.Sdk.dll" 
#r "Microsoft.Xrm.Client.dll" 

using System; 
using Microsoft.Xrm.Sdk; 
using Microsoft.Xrm.Sdk.Query; 
using Microsoft.Xrm.Client; 
using Microsoft.Xrm.Client.Services; 

public static void Run(string input, TraceWriter log) 
{ 
    var connectionString = "AuthType=Office365;[email protected]; Password=MyPassword;Url=https://contoso.crm.dynamics.com"; 
    CrmConnection connection = CrmConnection.Parse (connectionString); 
    using (OrganizationService orgService = new OrganizationService(connection)) 
    { 
     var query = new QueryExpression("account"); 
     query.ColumnSet.AddColumns("name"); 
     var ec = orgService.RetrieveMultiple(query); 
     log.Verbose(ec[0].GetAttributeValue<string>("name")); 
    } 
} 

沒有跡象顯示在什麼所需的裝配日誌文件無法找到。

我錯過了這個工作?我怎樣才能找出需要什麼DLL,但沒有找到?

+0

Tim,你有什麼組件被部署到bin文件夾?你能提供清單嗎? –

+0

我從一些開始,但最終複製到CRM 2015 SDK \ bin文件夾(34個文件)中的每個DLL中。我仔細檢查,他們都在我的function.json所在的\ bin文件夾下。我知道大多數DLL不需要用於簡單的Xrm應用程序,但Azure功能日誌不提供關於哪些DLL丟失的任何指示,因此我只是將它們全部複製。接下來我會嘗試使用Nuget,或許我會更好地運用這種方法。 –

+0

我已經離開了週末,但我會使用CRM 2015 SDK進行一些測試,以瞭解這裏發生了什麼。有一個問題可以解釋這種行爲,但最近已經解決了。我會盡快發佈更新。 –

回答

2

添,

今天正式上線的最新部署包含修訂來解決你遇到了這個問題。請再試一次(如果您的功能正在運行,您可能需要重新啓動您的站點以獲取最新版本),並讓我知道您是否有任何問題。

再次感謝您的舉報!我期待着看到你將與函數和Dynamics CRM結合在一起。

+0

成功!測試腳本(幾乎是我最初發布的)起作用 - 它返回結果查詢中第一個CRM帳戶的名稱。 非常感謝法比奧通過此跟進。 我的思緒現在充滿了功能和CRM的所有可能性。我會把幾個樣品放在一起,很快拿出來。而且微軟也應該對此進行博客,並確保CRM團隊知道這一點。 乾杯! –

相關問題