我正在尝试创建一个简单的azure函数,它将监听我的服务总线主题:
var test = new PhotoStatsChange();//OK
var entity = message.GetBody<PhotoStatsChange>(new NetDataContractSerializer());//Exception here
无法加载文件或程序集'PhotoManager.Domain,版本= 1.0.0.0, 文化=中性,PublicKeyToken =空”或其依赖项之一。的 系统找不到指定的文件。
PhotoManager.Domain
是定义PhotoStatsChange
的程序集。但是我完全被错误消息(没有内部异常)所迷惑:如果在上面的行中使用汇编,怎么找不到呢?
PhotoManager.Domain.dll
文件夹中实际上有/bin/Debug/net461/bin
。
残破的消息文本:
<?xml version="1.0" encoding="UTF-8"?>
<PhotoStatsChange
xmlns="http://schemas.datacontract.org/2004/07/PhotoManager.Domain.Caching"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/"
z:Id="1"
z:Type="PhotoManager.Domain.Caching.PhotoStatsChange"
z:Assembly="PhotoManager.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<CacheRebuilt>false</CacheRebuilt>
<InstanceNum z:Id="2">IN_0</InstanceNum>
</PhotoStatsChange>
我用汇编创建了一个简单的示例,其中包含一个POCO类,并且没有任何外部依赖项(仅包含默认添加的那些依赖项,例如System
,System.Data
等)。
即使在这种情况下,我也有相同的例外。
Copy Local
无济于事Microsoft.ServiceBus.Messaging.DataContractBinarySerializer
)时不存在此问题因此,在Azure Functions中使用NetDataContractSerializer
时似乎出现了问题。