我尝试使用OpenPop.NET访问gmail账户,但即使是基础测试代码也出现下面的错误信息。
错误:System.Reflection.TargetInvocationException:通过调用目标引发了异常。---> System.IO.FileNotFoundException:无法加载文件或程序集“OpenPop,Version = 2.0.4.369,Culture=neutral,PublicKeyToken=null”中的一个或多个依赖项。系统找不到指定的文件名:“OpenPop,Version=2.0.4.369,Culture=neutral,PublicKeyToken=null” 文件名: “OpenPop,Version=2.0.4.369,Culture=neutral,PublicKeyToken=null” 在 ST_1694f4bcdf2a4068ae871201a2216457.csproj.ScriptMain.Main()
警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1。 注意:启用程序集绑定故障日志记录会带来一些性能损失。 要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog]。
我的做法是在SQL Server Business Intelligence Development Studio 2008中的SSIS包中运行此代码,我使用的是Windows 7机器,装有.NET Framework 3.5和4. OpenPop dll和引用它的脚本任务都是在3.5中构建的。我已经研究了几天,但还没有找到任何可以修复它的方法。我尝试了多次重新编译OpenPop dll和删除和重新添加引用。下面是我目前使用的代码:
错误:System.Reflection.TargetInvocationException:通过调用目标引发了异常。---> System.IO.FileNotFoundException:无法加载文件或程序集“OpenPop,Version = 2.0.4.369,Culture=neutral,PublicKeyToken=null”中的一个或多个依赖项。系统找不到指定的文件名:“OpenPop,Version=2.0.4.369,Culture=neutral,PublicKeyToken=null” 文件名: “OpenPop,Version=2.0.4.369,Culture=neutral,PublicKeyToken=null” 在 ST_1694f4bcdf2a4068ae871201a2216457.csproj.ScriptMain.Main()
警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1。 注意:启用程序集绑定故障日志记录会带来一些性能损失。 要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog]。
我的做法是在SQL Server Business Intelligence Development Studio 2008中的SSIS包中运行此代码,我使用的是Windows 7机器,装有.NET Framework 3.5和4. OpenPop dll和引用它的脚本任务都是在3.5中构建的。我已经研究了几天,但还没有找到任何可以修复它的方法。我尝试了多次重新编译OpenPop dll和删除和重新添加引用。下面是我目前使用的代码:
Pop3Client client = new Pop3Client();
try
{
client.Connect("pop.gmail.com", 995, true);
try
{
client.Authenticate("user@domain.com", "mypassword");
Console.WriteLine("Success");
client.Disconnect();
}
catch
{
Console.WriteLine("Failed to authenticate");
Dts.TaskResult = (int)ScriptResults.Failure;
return;
}
}
catch
{
Console.WriteLine("Failed to connect");
Dts.TaskResult = (int)ScriptResults.Failure;
return;
}
Dts.TaskResult = (int)ScriptResults.Success;
Thank you in advance.