我正在使用FAXCOMEXLib api在C#中发送传真。我最近搬到了运行Vista的新开发机器上,现在我遇到了API问题。微软发布了Vista的新版本,现在当我在Vista机器上编译应用程序时,我无法安装并在XP机器上运行它而不会出现致命异常。
我的问题是,有什么最好的方法可以在Vista机器上编译和准备安装,但仍允许在XP上使用该应用程序?我是否必须有一个可用于最终版本编译的XP盒,或者有办法解决这些问题吗?
感谢您对此问题的任何帮助。
答案 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参加 看。管理员,你可以关闭它 线程。
希望这有帮助。