Странная ошибка в ShellFile.FromFilePath

Иногда я получаю следующую ошибку:

Товар с таким ключом уже добавлен

в System.Collections.Generic.Dictionary'2.Insert (ключ TKey, значение TValue, логическое добавление) в System.Collections.Generic.Dictionary'2.Add (ключ TKey, значение TValue)
в Microsoft.WindowsAPICodePack.Shell .PropertySystem.ShellPropertyDescriptionsCache.GetPropertyDescription (ключ PropertyKey) в Microsoft.WindowsAPICodePack.Shell.PropertySystem.ShellProperties.PropertySystemVideo.get_FrameWidth ()

Это происходит случайно, когда я пытаюсь прочитать FrameWidth из ShellFile:

ShellFile shellFile = ShellFile.FromFilePath(_file.FullPath);
            if (shellFile.Properties.System.Video.FrameWidth.Value != null) //<- fails here

Кто-нибудь знает, почему это могло произойти?


person Vladimirs    schedule 22.01.2016    source источник
comment
Какая следующая строка кода после if? Вы добавляете имена файлов в словарь в качестве их ключей?   -  person user9993    schedule 22.01.2016
comment
@ user9993 следующая строка после if - это просто присвоение этого значения локальной переменной (другой get), но это не имеет значения, потому что при первом чтении происходит сбой, которое находится в условии IF shellFile.Properties.System.Video.FrameWidth.Value != null   -  person Vladimirs    schedule 22.01.2016
comment
У меня была аналогичная проблема, но чаще в режиме выпуска, меньше или не было в режиме отладки. Оказывается, в моем коде есть ошибки, а не в ShellFile.FromFilePath как таковом. Есть отличная статья о типичных проблемах в окончательной версии. .   -  person Weihui Guo    schedule 15.11.2018


Ответы (1)


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

person Mark    schedule 23.02.2019