Получение ошибки в Репозитории при обновлении [копирует]

Я получил ошибку сегодня при обновлении моего репозитория и должен знать, как зафиксировать его. Ошибка следующие:

(E:Type' <!DOCTYPE' is not known on line 1 in source list /etc/apt/sources.list.d/medibuntu.list, 
E:The list of sources could not be read.)

Какие-либо идеи?

0
задан 2 November 2017 в 05:37

7 ответов

Я знаю, что вопрос и стар и решен, но esiest решение, о котором я могу думать, просто использует Enviroment. Свойство TickCount, которое возвращает количество миллисекунд начиная с запущенной системы:

System.DateTime SystemStartTime = DateAndTime.Now.AddMilliseconds(-Environment.TickCount);
System.DateTime Uptime = DateAndTime.Now - SystemStartTime;

Этот солитон намного быстрее, чем принятый answare.

1
ответ дан 1 November 2019 в 05:37

Простой, нет но это может быть сделано:

    static DateTime getLastBootTime(ManagementObject mObject)
    {
        PropertyData pd = mObject.Properties["LastBootUpTime"];
        string name = pd.Name.ToString();
        DateTime lastBoot = parseCmiDateTime(pd.Value.ToString());
        return lastBoot;
    }

    static ManagementObject getServerOSObject(string serverName)
    {
        ManagementObjectSearcher mSearcher = new ManagementObjectSearcher("Select * From Win32_OperatingSystem");
        mSearcher.Scope = new ManagementScope(String.Format(@"\\{0}\root\cimv2", serverName));
        ManagementObjectCollection mObjects = mSearcher.Get();
        if (mObjects.Count != 1) throw new Exception(String.Format("Expected 1 object, returned {0}.", mObjects.Count));
        foreach (ManagementObject m in mObjects)
        {
            //No indexing on collection
            return m;
        }
        throw new Exception("Something went wrong!");
    }
4
ответ дан 1 November 2019 в 05:37

Самый простой и надлежащий способ сделать это

public static TimeSpan GetUptime()
{
    ManagementObject mo = new ManagementObject(@"\\.\root\cimv2:Win32_OperatingSystem=@");
    DateTime lastBootUp = ManagementDateTimeConverter.ToDateTime(mo["LastBootUpTime"].ToString());
    return DateTime.Now.ToUniversalTime() - lastBootUp.ToUniversalTime();
}
7
ответ дан 1 November 2019 в 05:37

Точный и больше, чем System.Environment.TickCount, не включая ОС ужасающие счетчики перфекта, WMI или собственные вызовы:

var ticks = Stopwatch.GetTimestamp();
var uptime = ((double)ticks) / Stopwatch.Frequency;
var uptimeSpan = TimeSpan.FromSeconds(uptime);
10
ответ дан 1 November 2019 в 05:37

Моя машина имеет время работы 58 days 17 hours согласно Диспетчеру задач. Я прошел и попробовал каждый ответ здесь, и быстрые выключены немного (~1-3 минуты примерно, но более чем 58 дней времени работы):

Stopwatch.GetTimeStamp():                   58days 17hours 11minutes 25seconds
~Time to calculate (ms): 6.8413
DllImport GetTickCount64():                 58days 17hours 13minutes 34seconds
~Time to calculate (ms): 0.2192
PerformanceCounter(System, System Up Time): 58days 17hours 14minutes 02seconds
~Time to calculate (ms): 1233.2854
ManagementObject LastBootUpTime:            58days 17hours 14minutes 02seconds
~Time to calculate (ms): 30.0283

последние два, с помощью PerformanceCounter или с помощью ManagementObject, всегда в течение той же секунды как Windows Task Manager (просто имеют к честное слово или пробуют его самостоятельно кодом ниже). На основе результатов я собираюсь использовать ManagementObject LastBootUpTime метод, потому что это решительно быстрее, чем PerformanceCounter, но все еще совершенно точно по сравнению с Диспетчером задач.

Примечание, что я действительно вычитал текущее прошедшее время из каждого метода прежде, чем распечатать времена, но все это занимает меньше чем 2 секунды для выполнения так временного сдвига, не может быть объяснено путем неподходящего учета в течение времени выполнения так или иначе. Вот код, который я использовал:

[System.Runtime.InteropServices.DllImport("kernel32")]
extern static UInt64 GetTickCount64();

public static void Main()
{
    var start = Stopwatch.StartNew();

    var eachStart = Stopwatch.StartNew();
    var ticks = Stopwatch.GetTimestamp();
    var uptime = ((double)ticks) / Stopwatch.Frequency;
    var uptimeTimeSpan = TimeSpan.FromSeconds(uptime);
    Console.WriteLine("Stopwatch.GetTimeStamp():                   " + uptimeTimeSpan.Subtract(start.Elapsed).ToString(@"dd\d\a\y\s\ hh\h\o\u\r\s\ mm\m\i\n\u\t\e\s\ ss\s\e\c\o\n\d\s"));
    Console.WriteLine($"~Time to calculate (ms): {eachStart.Elapsed.TotalMilliseconds}");

    eachStart.Restart();
    Console.WriteLine("DllImport GetTickCount64():                 " + TimeSpan.FromMilliseconds(GetTickCount64()).Subtract(start.Elapsed).ToString(@"dd\d\a\y\s\ hh\h\o\u\r\s\ mm\m\i\n\u\t\e\s\ ss\s\e\c\o\n\d\s"));
    Console.WriteLine($"~Time to calculate (ms): {eachStart.Elapsed.TotalMilliseconds}");

    eachStart.Restart();
    var upTime = new PerformanceCounter("System", "System Up Time");
    upTime.NextValue();       //Call this an extra time before reading its value
    Console.WriteLine("PerformanceCounter(System, System Up Time): " + TimeSpan.FromSeconds(upTime.NextValue()).Subtract(start.Elapsed).ToString(@"dd\d\a\y\s\ hh\h\o\u\r\s\ mm\m\i\n\u\t\e\s\ ss\s\e\c\o\n\d\s"));
    Console.WriteLine($"~Time to calculate (ms): {eachStart.Elapsed.TotalMilliseconds}");

    eachStart.Restart();
    ManagementObject mo = new ManagementObject(@"\\.\root\cimv2:Win32_OperatingSystem=@");
    DateTime lastBootUp = ManagementDateTimeConverter.ToDateTime(mo["LastBootUpTime"].ToString());
    Console.WriteLine("ManagementObject LastBootUpTime:            " + (DateTime.Now.ToUniversalTime() - lastBootUp.ToUniversalTime()).Subtract(start.Elapsed).ToString(@"dd\d\a\y\s\ hh\h\o\u\r\s\ mm\m\i\n\u\t\e\s\ ss\s\e\c\o\n\d\s"));
    Console.WriteLine($"~Time to calculate (ms): {eachStart.Elapsed.TotalMilliseconds}");
}
18
ответ дан 1 November 2019 в 05:37

Я немного опаздываю, но другой простой путь состоит в том, чтобы использовать функция GetTickCount64, которая является доступным запуском с Windows Vista и не переполняется, как GetTickCount делает:

public static TimeSpan GetUpTime()
{
    return TimeSpan.FromMilliseconds(GetTickCount64());
}

[DllImport("kernel32")]
extern static UInt64 GetTickCount64();
39
ответ дан 1 November 2019 в 05:37

Система. Среда. TickCount получает количество миллисекунд, так как система была перезапущена.

Остерегайтесь, хотя это это - Int32 и переполнится после 24,9 дней и станет отрицательным. Посмотрите комментарии по документам MDSN.

26
ответ дан 1 November 2019 в 05:37

Другие вопросы по тегам:

Похожие вопросы: