【问题标题】:ILMerge with Microsoft.Servicebus.dll for CRM pluginILMerge 与 Microsoft.Servicebus.dll 的 CRM 插件
【发布时间】:2018-03-15 17:25:52
【问题描述】:
我正在尝试使用 ILMerge 将 Microsoft.Servicebus.dll 合并到我的 CRM 插件 dll 中。出于某种原因,我在尝试构建我的项目时不断收到以下错误;
不允许未解析的程序集引用:Microsoft.Azure.Services.AppAuthentication。
我为每个 dll 使用的版本在下面的屏幕截图中列出。我不知道为什么会发生这种情况,但如果我将servicebus dll 的版本更改为 4.1.6,它就会起作用。 (如果我这样做,在实际运行CRM 插件代码时会出现另一个错误,所以我想使用 4.1.7)。
【问题讨论】:
标签:
c#
visual-studio
visual-studio-2015
microsoft-dynamics
ilmerge
【解决方案1】:
对于任何人的信息,最后我没有将服务总线 dll 与插件代码合并。我调用了一个 Azure 函数(通过使用 WebClient 的 Webhook)。 Azure 函数有 servicebus dll 和代码,而不是我的插件。插件最终做的就是调用这个函数。
public static void FileCopy(string source, string dest, string webhookurl)
{
using (var client = new WebClient { Headers = { [HttpRequestHeader.ContentType] = "application/json" } })
{
var paramRecord = new Parameters(source, dest);
var serializer = new DataContractJsonSerializer(typeof (Parameters));
var memoryStream = new MemoryStream();
serializer.WriteObject(memoryStream, paramRecord);
// todo handle the removal of escaped strings better
var jsonObject = Encoding.Default.GetString(memoryStream.ToArray()).Replace(@"\", "");
string response = client.UploadString(webhookurl, jsonObject);
}
}