Sep 232009
 

Wenn das bestimmt werden soll wird es schwierig. Ich musste einem Problem nachgehen das auftaucht wenn man mit der VSTO unter Excel in einem 64Bit OS arbeitet. Gewisse Operationen verursachen folgende Fehlermeldung:

Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

Abhilfe schafft der Artikel KB320369. Der Fehler wird offensichtlich auf einen Fehler in der VSTO zurück geführt.

Ich wollte den Hack aber nicht auch unter 32Bit OS anwenden. Aber dafür muss ich irgend wie bestimmen ob der Code unter einem 64Bit oder 32Bit OS ausgeführt wird. Das .NET Framework scheint da keine Methode anzubieten um das einfach zu lösen. Im Internet sind  einige kuriose Lösungen für das Problem zu finden.

Ich habe jetzt folgende umgesetzt die unter Vista 64Bit und Windows 7 32Bit funktioniert.

Gefunden –> HOWTO: Detect Process Bitness

Diese Lösung funktioniert aber nur ab Windows XP (MSDN).

kick it on dotnet-kicks.de

  2 Responses to “C# – 64Bit oder 32Bit OS?”

Comments (2)
  1. using System;

    namespace PostBuildTool.Infrastructure
    {
    internal static class PlatformInfo
    {
    internal static bool RunningAsX64 { get { return (IntPtr.Size == 8); } }
    }
    }

  2. Danke. Habs irgend wo gelesen aber keine Umsetzung gefunden.

Sorry, the comment form is closed at this time.