0

我正在处理 SharePoint 域。有时我需要为事件接收器和 Windows 服务等进行开发。

上周我在我的服务器上安装了一个 Windows 服务来从本地文件夹上传文档。服务器是 64 位机器,服务器上安装了“Windows server 2008 R2”作为操作系统来运行 SharePoint Foundation 2010。服务运行正常。

要求是,没有用户会去服务器上传文件。所以我已经在本地用户机器上安装了该服务。一些用户使用 32 位机器和 32 位操作系统,而其他用户使用 64 位。在安装服务时,我在 32 位机器上遇到错误。错误是“此解决方案适用于 64 位机器”。将目标平台从64位更改为x86后,该服务在32位机器上安装成功并开始正常工作。

现在问题来了:

  • 为了使用 SharePoint 对象模型,我
    在我的 Windows 服务中使用 SharePoint 64 位 dll,该服务安装在 32 位机器和 32 位操作系统上。
  • 64位dll是否可以在32位机器上运行?
  • 什么情况下会遇到“64位dll不能在32位机器上运行”的问题?
  • 如果我想在 64 位和 32 位机器上安装相同的解决方案,我该怎么办?我不想每次都更改目标平台。

更新:

经过研发,我发现“32 位解决方案可以在 64 位 dll 上安装一些条款和条件”参考http://www.samlogic.net/articles/32-64-bit-windows-folder-x86-syswow64.htm

在 64 位机器中,我们有 Program x86 和 SysWOW64 文件夹来处理 32 位 dll 功能。

现在的问题是:

我们如何在 32 位机器上处理 64 位 dll?

是否确认 SharePoint dll 是“任何 CPU”?

问候。

4

1 回答 1

0

不确定我是否理解您要做什么,所以我会尽量详尽:

  • SharePoint 对象模型仅在 SharePoint 服务器上可用,而不在用户工作站上可用。他们确实依赖于仅在 64 位操作系统上工作的 64 位 DLL。

  • SharePoint 2010 允许您使用在远程计算机上工作的“客户端对象模型”,例如使用工作站。它们是 .Net DLL,不特定于 32 位或 64 位。只需使用“任何 CPU”编译您的 exe,它就可以正常工作

  • 一般而言,64 位 exe 只能在 64 位操作系统上运行。但是,在 .Net 中,您可以使用适用于 32 位和 64 位的“任何 CPU”。但是,这仅在您的 exe 及其依赖项是完整的 .Net(无本机代码)时才有效。

于 2012-07-05T12:00:38.840 回答