C#和FAXCOMEXLib

时间:2009-08-17 17:04:41

标签: c# windows-vista windows-xp

我正在使用FAXCOMEXLib api在C#中发送传真。我最近搬到了运行Vista的新开发机器上,现在我遇到了API问题。微软发布了Vista的新版本,现在当我在Vista机器上编译应用程序时,我无法安装并在XP机器上运行它而不会出现致命异常。

我的问题是,有什么最好的方法可以在Vista机器上编译和准备安装,但仍允许在XP上使用该应用程序?我是否必须有一个可用于最终版本编译的XP盒,或者有办法解决这些问题吗?

感谢您对此问题的任何帮助。

1 个答案:

答案 0 :(得分:2)

不完全是答案,但可能有所帮助: 我从专家交流中得到了这个:

  经过多次苦难,我发现了一个   溶液

     

问题的根本原因是   简单:FAXCOMEXLib的版本   Vista与XP不同。   所以,当我构建解决方案时   Vista,它构建了Interop包装器   找到了更新的版本   在system32目录中,无论如何   什么实际的fxscomex.dll文件我   引用。所以,它总是包装   围绕文件的版本   与XP不兼容。

     

要解决它,我建立了   解决方案在XP盒子上,然后偷走了   来自该构建的Interop包装器。一世   然后写了一个我运行的批处理文件   当我将构建复制到XP盒子上时。   批处理文件摆脱了   现有的Interop包装器,取而代之   我从XP中偷走了包装   建立,摆脱我的集会(称为   fax.dll)引用Interop   包装器,并从中重新编译   用XP抓住XP盒子   csc.exe工具和原始的fax.cs   文件。换句话说,我基本上   击败文件直到提交   他们指向正确的版本   FAXCOMEXLib库。为清楚起见,   这是转换的批处理文件   与Vista兼容的版本   程序与XP兼容的版本:

     

***** del Interop.FAXCOMEXLib.dll del fax.dll ren   Interop.FAXCOMEXLib.dll.fix   Interop.FAXCOMEXLib.dll   “C:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \ CSC”   / T:库   /r:Microsoft.Practices.EnterpriseLibrary.Common.dll   /r:Microsoft.Practices.EnterpriseLibrary.Data.dll   /r:Interop.FAXCOMEXLib.dll   /out:Fax.dll fax.cs

     
     

不是非常优雅或漂亮,但它   诀窍。

     

我想这会是一个   XP上任何旧的COM .dll问题   已更新为新版本   Vista中。

     

谢谢cpkilekofp参加   看。管理员,你可以关闭它   线程。

希望这有帮助。