【发布时间】:2015-09-25 00:38:50
【问题描述】:
我正在尝试为 Outlook 创建加载项,但遇到反序列化和防病毒程序问题。
我注意到,当我的加载项尝试反序列化任何数据时,.NET 框架在 “C:\Users\{UserName}\AppData\Local\Temp\" 文件夹中创建了临时 dll。
这个dll存在的时间很短,但是杀毒软件时不时会锁定它,并且加载项会抛出错误消息file is used by another process。
我试图摆脱临时 dll 并找到使用 sgen 工具创建 XmlSerializers.dll 的建议。
我生成了 MyAssembly。具有强名称的 XmlSerializers.dll 并将其放置到具有加载项的文件夹 (C:\Program Files (x86)\MyAddin)。但这无济于事。
然后我尝试放置 MyAssembly。 XmlSerializers.dll 到 GAC,然后到 Outlook 文件夹,但没有成功。当从 GAC 调用 dll 时,我收到以下错误消息,但 dll 没有任何引用。
“System.IO.FileNotFoundException:无法加载文件或程序集或 它的依赖项之一。系统找不到指定的文件。”
请添加任何想法如何摆脱临时 dll
【问题讨论】:
-
看起来这个问题根本与 Outlook 无关。我建议创建一个常规的 Windows 窗体应用程序并尝试在那里运行代码。有用吗?
-
我尝试创建控制台应用程序。复制反序列化逻辑并使用 sgen 工具创建 MyConsole.XmlSerializers.dll。它工作得很好(没有创建临时 dll)。
标签: c# .net xmlserializer