Мы всегда рады услышать ваше мнение и пожелания по дальнейшему развитию программы.
0
Answered

Нельзя было придумать нормальную программу? Или написать толковый хэлпер?

Александр Коноплёв 11 years ago updated by Andrej Repin 11 years ago 1

Почему книги не добавляются? Почему я должен угадывать мысли разработчиков?

Answer
Andrej Repin 11 years ago

Мы тоже не в состоянии угадывать мысли пользователей, но с удовольствием помогаем решать их проблемы. 


Рекомендуется к прочтению: Как начать работать с программой 

0
Fixed

Выдает ошибку при установке версии 1.3.703.0

Дмитрий Ммм 11 years ago updated by Andrej Repin 11 years ago 6

​​​При попытке установить версию 1.3.703.0 выдает ошибку
Image
При этом старая версия удалена. Пробовал чистить реестр, не помогло. В принципе перепробовал все, что пришло в голову, ничего не помогло.
Есть ли какое-либо решение данной проблемы?

Answer
Andrej Repin 11 years ago
Похоже на сбой в базе данных Windows Installer'a и так как это компонент системы, мы здесь, к сожалению, ничем не можем помочь. Как вариант решения данной проблемы: в будущем мы будем выкладывать в дополнение к программе установки, также архив с программой.
0
Fixed

Ошибка при попытке войти в Опции

Vnovikov2008 13 years ago updated by Andrej Repin 13 years ago 3

Я так понял что обновлять его надо через меню Options. При нажатии на кнопку Options в выпадающем меню появляется ошибка: Возникло необработанное исключение. Ключ не может быть использован в указанном состоянии.

Подробно:
System.Security.Cryptography.CryptographicException: Ключ не может быть использован в указанном состоянии.

в System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[] optionalEntropy, DataProtectionScope scope)
в Fb2Library.Config.RecentUserCredentialsElement.get_PlainTextPassword()
в Fb2Library.MainWindow.GuessUserInfo(RecentUserCredentialsElement userCredentials, FbConnectionStringBuilder builder)
в Fb2Library.MainWindow.Authenticate(String databaseId, Boolean force, FbConnectionStringBuilder builder)
в Fb2Library.MainWindow.OpenDatabase(FbConnectionStringBuilder builder)
в Fb2Library.MainWindow.OpenDatabaseFile(String filename)
в Fb2Library.MainWindow.OpenFile(String filename)
в Fb2Library.MainWindow.<recentList_SelectionChanged>b__48()
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

А вот другая, но тоже при попытке в то же меню попасть:
System.ComponentModel.Composition.CompositionException: При объединении возникла одна ошибка объединения. Основная причина изложена ниже. Просмотрите свойство CompositionException.Errors для получения дополнительных сведений.

1) Ключ не может быть использован в указанном состоянии.


Результат: Произошло исключение при вызове метода "OnImportsSatisfied" для типа "Fb2Library.Options.NetworkOptionsPage".

Результат: Невозможно активизировать элемент типа "Fb2Library.Options.NetworkOptionsPage".
Элемент: Fb2Library.Options.NetworkOptionsPage --> Fb2Library.Options.NetworkOptionsPage --> AssemblyCatalog (Assembly="Fb2Library, Version=1.0.342.1, Culture=neutral, PublicKeyToken=null")

Результат: Не удается получить экспорт "Fb2Library.Options.NetworkOptionsPage (ContractName="System.Windows.Controls.Page")" из части "Fb2Library.Options.NetworkOptionsPage".
Элемент: Fb2Library.Options.NetworkOptionsPage (ContractName="System.Windows.Controls.Page") --> Fb2Library.Options.NetworkOptionsPage --> AssemblyCatalog (Assembly="Fb2Library, Version=1.0.342.1, Culture=neutral, PublicKeyToken=null")

Результат: Произошло исключение при вызове метода "OnImportsSatisfied" для типа "Fb2Library.Options.OptionsDialog".

Результат: Невозможно активизировать элемент типа "Fb2Library.Options.OptionsDialog".
Элемент: Fb2Library.Options.OptionsDialog --> Fb2Library.Options.OptionsDialog

в System.ComponentModel.Composition.CompositionResult.ThrowOnErrors(AtomicComposition atomicComposition)
в System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.Compose(CompositionBatch batch)
в System.ComponentModel.Composition.Hosting.CompositionContainer.Compose(CompositionBatch batch)
в Fb2Library.MainWindow.ShowOptionsCommand_Executed(Object sender, ExecutedRoutedEventArgs e)
в System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
в System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding)
в System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
в System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
в System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
в System.Windows.UIElement.OnExecutedThunk(Object sender, ExecutedRoutedEventArgs e)
в System.Windows.Input.ExecutedRoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object target)
в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
в System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
в System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
в System.Windows.Input.RoutedCommand.ExecuteCore(Object parameter, IInputElement target, Boolean userInitiated)
в MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
в System.Windows.Controls.Primitives.ButtonBase.OnClick()
в System.Windows.Controls.Button.OnClick()
в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
в System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
в System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
в System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
в System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
в System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
в System.Windows.Input.InputManager.ProcessStagingArea()
в System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
в System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
в System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)


Что это??

Answer
Andrej Repin 13 years ago
Ошибка, Сэр!

Систему переустанавливали и/или копировали конфигурационный файл с другого компьютера?
Программа шифрует пароли уникальным для каждой системы ключом, и поэтому конфигурационный файл с одного компьютера нельзя использовать на другом.

Для восстановления работоспособности удалите из конфигурационного файла вместе с содержимым секции <RecentUserCredentials> и <NetworkConfig>

UPD: Добавлена обработка CryptographicException
-3
Under review

Отказаться от добавления в базу обложки

ve51 12 years ago updated by Samuil Shpits 7 years ago 1

Считаю, что хранение обложки в базе (режимы файловый и индексирование) не добавляет функциональности, а только ухудшает работу программы.
Отказавшись от добавления обложки, получим следующие плюсы:
1. Ускорение добавления книг
2. Уменьшения размера базы
3. И как следствие п.2 сокращение нагрузки на комп.

Для иллюстрации приведу результаты проведенного мною теста:
FB2Lirary (1.1.399.1) в режиме индексирования с отключенной проверкой на дубликаты была создана база 140 тыс. книг (Win 7-64бит; проц - i5-2500; оперативка - 12 Гб). Процесс продолжался 5час. 45мин., файл базы - 3760 Мб
С той же работой MyHomeLib (2.1.3.757), который не добавляет обложки в базу, справился за 1час 25мин., файл базы - 433 Мб.
Следует также учитывать, размер файла базы будет увеличиваться от правки базы, например, размер базы тех же книг в FB2Librarian (1.5.1.0) вырос до 5915 Мб, что стало вызывать серьезные проблемы по производительности.