0

SharePoint ドメインで作業しています。イベントレシーバーやWindowsサービスなどの開発を行う必要がある場合があります。

先週、サーバーに Windows サービスをインストールして、ローカル フォルダーからドキュメントをアップロードしました。サーバーは 64 ビット マシンで、SharePoint Foundation 2010 を実行するための OS として "Windows server 2008 R2" がサーバーにインストールされています。サービスは正常に実行されていました。

要件は、ドキュメントをアップロードするためにサーバーにアクセスするユーザーがいないことでした。そのため、ローカル ユーザーのマシンにサービスをインストールしました。一部のユーザーは 32 ビットのマシンと 32 ビットの OS を使用しており、他のユーザーは 64 ビットで作業しています。サービスのインストール中に、32 ビット マシンでエラーが発生しました。エラーは「このソリューションは 64 ビット マシン用です」でした。ターゲット プラットフォームを 64 ビットから x86 に変更した後、サービスは 32 ビット マシンに正常にインストールされ、適切に動作し始めました。

今、質問が来ました:

  • SharePoint オブジェクト モデルを操作するために
    、32 ビット マシンと 32 ビット OS にインストールされている Windows サービスで SharePoint 64 ビット dll を使用しています。
  • 64 ビット dll が 32 ビット マシンで動作する可能性はありますか?
  • 「64 ビット dll は 32 ビット マシンでは動作しない」という問題に直面する可能性があるのは、どのシナリオですか?
  • 同じソリューションを 64 ビット マシンと 32 ビット マシンにインストールしたい場合はどうすればよいですか? ターゲットプラットフォームを毎回変更したくありません。

アップデート:

R&D の後、「32 ビット ソリューションは、いくつかの条件付きで 64 ビット dll にインストールできる」ことがわかりまし

64 ビット マシンでは、Program x86 および SysWOW64 フォルダーを使用して、32 ビット dll 機能を処理します。

問題は次のとおりです。

32 ビット マシンで 64 ビット dll をどのように処理していますか?

SharePoint dll が「任意の CPU」であることを確認できますか?

よろしく。

4

1 に答える 1

0

あなたが何をしようとしているのかわからないので、網羅的にしようと思います:

  • SharePoint オブジェクト モデルは、ユーザー ワークステーションではなく、SharePoint サーバーでのみ使用できます。実際、それらは 64 ビット OS でのみ動作する 64 ビット DLL に依存しています。

  • SharePoint 2010 では、ワークステーションのようにリモート コンピューターで動作する "クライアント オブジェクト モデル" を使用できます。これらは .Net DLL であり、32 ビットまたは 64 ビットに固有のものではありません。「Any CPU」でexeをコンパイルするだけで、問題なく動作します

  • 一般的に言えば、64 ビット exe は 64 ビット OS でのみ動作します。ただし、.Net では、32 ビットと 64 ビットの両方で動作する「任意の CPU」を使用できます。ただし、これは、exe とその依存関係が完全な .Net (ネイティブ コードなし) である場合にのみ機能します。

于 2012-07-05T12:00:38.840 に答える