2011-06-21 5 views
1

私はいくつかのC#Windowsサービスを持っています。 1つは、64ビットプロセスとして実行することを主張しています。サービスのビット数を強制する方法

これは私がCにすべての共有の設定、移行する以外は問題ではないでしょう:サービスは設定の読み取りに失敗した結果として、\ WINDOWS \ Microsoft.NET \ Frameworkの\ v4.0.30319 \ CONFIG

を現在のところ、共有設定を複製する必要があります(これは、それをmachine.configに移動する点を打ち破っています)。

ビルド構成をx64からx86に変更して再インストールしましたが、サービスはまだ実行されています。 64ビットモードで動作します。

答えて

1

このアセンブリを32ビットモードでロードする必要があることをOSに通知するCorflags/+ 32Bit [Service.Exe](.Net SDKの一部)を実行します。

+0

興味深いですが、ビルド設定の設定でcorflagsヘッダーが強制されませんか?私は、これをインストールする前に、サービスアセンブリを再コンパイルするたびに手動で(またはビルド後のステップとして)実行する必要があると考えていますか? –

+0

全体的なビルド設定がx86である可能性がありますが、MSIまたはCは32ビットに設定されていますが、.NETアセンブリはAnyCPUとして残っていますか? – Spence

+0

サービス実行可能ファイルのビルド設定を32ビットに設定した場合、これはcorflags +32を設定するのと同じです。しかし、私は64ビットとして実行することがあなたの実際の問題であると考えています。 – Spence

関連する問題