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;
}
}
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…..
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!!!