Pavel Novotný

avatar

Email: novotny@pavelnovotny.info
Telefon: +420 732376206
Skype: pavelnovotny.info
Messenger: novotny@pavelnovotny.info
ICQ: 167-272-595
Web: www.pavelnovotny.info


Tags

Kategorie

Navigation

Stránky

    Archiv

    Odkazy

    Zjištění typu platformy Windows 32bit/x64 v C#

    Viděl jsem několik možností jak zjistit o jaký druh platformy se jedná, od absurdní kontroly existence adresáře “Program Files (x86)” (a ještě fixně na disku C), přes kontrolu environment variables, až po docela zajímavou konstrukci

    public bool Is64bit() {
        return Marshal.SizeOf(typeof(IntPtr)) == 8;
    }

    Tuto funkce jsem sice nezkoušel, ale podle mého názoru určitě nebude fungovat pokud změníte target platform v projektu na 32bit a použijete tuto funkci na x64.

    Nakonec mi přišlo nejrozumnější volat API funkci Windows (nemusel jsem řešit problém s unsafe assembly):

    private enum Platform
    {
        X86,
        X64,
        Unknown
    }

    internal const ushort PROCESSOR_ARCHITECTURE_INTEL = 0;
    internal const ushort PROCESSOR_ARCHITECTURE_IA64 = 6;
    internal const ushort PROCESSOR_ARCHITECTURE_AMD64 = 9;
    internal const ushort PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF;


    [StructLayout(LayoutKind.Sequential)]
    internal struct SYSTEM_INFO
    {
        public ushort wProcessorArchitecture;
        public ushort wReserved;
        public uint dwPageSize;
        public IntPtr lpMinimumApplicationAddress;
        public IntPtr lpMaximumApplicationAddress;
        public UIntPtr dwActiveProcessorMask;
        public uint dwNumberOfProcessors;
        public uint dwProcessorType;
        public uint dwAllocationGranularity;
        public ushort wProcessorLevel;
        public ushort wProcessorRevision;
    };

    [DllImport("kernel32.dll")]
    internal static extern void GetNativeSystemInfo(ref SYSTEM_INFO lpSystemInfo);

    private static Platform GetPlatform()
    {
        SYSTEM_INFO sysInfo = new SYSTEM_INFO();
        GetNativeSystemInfo(ref sysInfo);

        switch (sysInfo.wProcessorArchitecture)
        {
            case PROCESSOR_ARCHITECTURE_AMD64:
                return Platform.X64;

            case PROCESSOR_ARCHITECTURE_INTEL:
                return Platform.X86;

            default:
                return Platform.Unknown;
        }
    }

    Vytvořeno: 14.07.2010 11:00 uživatelem novotny | Komentáře (0) RSS comment feed |
    • Currently 0/5 Stars.
    • 1
    • 2
    • 3
    • 4
    • 5
    Kategorie: .NET | Windows

    TFS 2010: No connection could be made because the target machine actively refused it.

    Pokud si nainstalujete Team Foundation Server 2010 a zobrazuje se Vám tato hláška při snaze vygenerovat report: “No connection could be made because the target machine actively refused it.”

    Stačí pouze spustit Windows službu “SQL Server Analysis Services”  a nastavit jí spouštění na automatic :)

    Snad to někomu ušetří hodiny hledání chyb v nastavení Reporting Services…..

    Vytvořeno: 11.07.2010 08:54 uživatelem novotny | Komentáře (0) RSS comment feed |
    • Currently 0/5 Stars.
    • 1
    • 2
    • 3
    • 4
    • 5
    Kategorie: .NET | Sharepoint | Windows

    Upgrade Windows 7 RC na RTM

    Pro upgrade Win7 release candidate na výslednou krabicovou verzi Windows 7 je potřeba provést následující kroky:

    • koupit originální DVD s Windows 7 (případně stáhnout ISO soubor s MSDN subscription)
    • zkopírovat někam na pevný disk obsah celého DVD
    • otevřít v poznámkové bloku soubor:
      {PATH}\sources\cversion.ini
    • hodnotu parametru MinClient přepsat na “1000”
    • uložit soubor
    • vypálit na DVD a provést přímo z Windows 7 RC/BETA upgrade (BOOT nebude fungovat, toto DVD bude pouze pro jednorázovou migraci)

    Stejný postup platí pro upgrade Windows 7 BETA na RTM.

    Tento postup opravdu funguje, není však logicky podporován Microsoftem, jediný správný a legální postup je kompletní reinstalace!!!

    Vytvořeno: 12.08.2009 13:38 uživatelem novotny | Komentáře (6) RSS comment feed |
    • Currently 0/5 Stars.
    • 1
    • 2
    • 3
    • 4
    • 5
    Kategorie: Other | Tools | Windows