Exemplo n.º 1
0
        /// <summary>
        /// Try to get the PDBSTR.EXE path from the Windows SDK
        /// </summary>
        /// <returns>Path to PDBSTR.EXE</returns>
        public static FileReference GetPdbStrExe()
        {
            List <KeyValuePair <string, DirectoryReference> > WindowsSdkDirs = WindowsExports.GetWindowsSdkDirs();

            foreach (DirectoryReference WindowsSdkDir in WindowsSdkDirs.Select(x => x.Value))
            {
                FileReference CheckPdbStrExe64 = FileReference.Combine(WindowsSdkDir, "Debuggers", "x64", "SrcSrv", "PdbStr.exe");
                if (FileReference.Exists(CheckPdbStrExe64))
                {
                    return(CheckPdbStrExe64);
                }

                FileReference CheckPdbStrExe32 = FileReference.Combine(WindowsSdkDir, "Debuggers", "x86", "SrcSrv", "PdbStr.exe");
                if (FileReference.Exists(CheckPdbStrExe32))
                {
                    return(CheckPdbStrExe32);
                }
            }
            throw new AutomationException("Unable to find a Windows SDK installation containing PDBSTR.EXE");
        }
Exemplo n.º 2
0
    public static bool TryGetPdbCopyLocation(out FileReference OutLocation)
    {
        // Try to find an installation of the Windows 10 SDK
        List <KeyValuePair <string, DirectoryReference> > WindowsSdkDirs = WindowsExports.GetWindowsSdkDirs();

        foreach (DirectoryReference WindowsSdkDir in WindowsSdkDirs.Select(x => x.Value))
        {
            FileReference PdbCopyExe = FileReference.Combine(WindowsSdkDir, "Debuggers", "x64", "PdbCopy.exe");
            if (FileReference.Exists(PdbCopyExe))
            {
                OutLocation = PdbCopyExe;
                return(true);
            }
        }

        // Look for an installation of the MSBuild 14
        FileReference LocationMsBuild14 = FileReference.Combine(DirectoryReference.GetSpecialFolder(Environment.SpecialFolder.ProgramFilesX86), "MSBuild", "Microsoft", "VisualStudio", "v14.0", "AppxPackage", "PDBCopy.exe");

        if (FileReference.Exists(LocationMsBuild14))
        {
            OutLocation = LocationMsBuild14;
            return(true);
        }

        // Look for an installation of the MSBuild 12
        FileReference LocationMsBuild12 = FileReference.Combine(DirectoryReference.GetSpecialFolder(Environment.SpecialFolder.ProgramFilesX86), "MSBuild", "Microsoft", "VisualStudio", "v12.0", "AppxPackage", "PDBCopy.exe");

        if (FileReference.Exists(LocationMsBuild12))
        {
            OutLocation = LocationMsBuild12;
            return(true);
        }

        // Otherwise fail
        OutLocation = null;
        return(false);
    }