Мне нравится ошибка как возвращаемое значение путь. Если Вы разрабатываете API, и Вы хотите использовать свою библиотеку, максимально безболезненную, думают об этих дополнениях:
хранилище все возможные состояния ошибки в одном typedef'ed перечислении и использовании это в Вашем lib. Только возвратите ints или еще хуже, смешайте ints или различные перечисления с кодами возврата.
обеспечивают функцию, которая преобразовывает ошибки во что-то человекочитаемое. Может быть простым. Просто ошибочное перечисление в, символ константы*.
я знаю, что эта идея делает многопоточное использование немного трудным, но было бы хорошо, если прикладной программист может установить глобальный ошибочный обратный вызов. Тем путем они смогут поместить точку останова в обратный вызов во время сессий поиска ошибки.
Hope это помогает.
AssemblyVersion используется загрузчиком классов .NET и определяет версию .NET сборки. AssemblyFileVersion представляет версию файла, содержащуюся в стандартном блоке VERSION_INFO файла Windows PE ... другими словами, она представляет версию файла, как показано в диалоговом окне свойств файла.
Если вы опустите AssemblyFileVersion, компилятор установит ее по умолчанию должно быть таким же, как AssemblyVersion.
Обычно версия файла более точная, чем версия сборки. Например: System.Windows.Form.dll - Версия сборки: 2.0.0.0, Версия файла: 2.0.50727.3053.
Версия сборки - важная информация, когда пора загружать сборку.
Итак, если вы обнаружили небольшую ошибку в одной из упомянутых сборок. Вы исправляете ошибку, обновляете версию файла, но сохраняете ту же версию сборки. Преимущество: вам не нужно повторно связывать ссылки на эту сборку с новой версией, а с версией файла вы можете узнать текущую версию вашего файла.
AssemblyFileVersion используется для установки информации о версии в ресурсе Win32 в вашем двоичный, тот, который вы увидите, если откроете окно свойств для файла в проводнике.
Установщики будут использовать AssemblyFileVersion, чтобы определить, следует ли перезаписывать файл на основе версии.
Важно отметить, что изменение AssemblyVersion для сборки, которая реализует сериализацию, имеет серьезные последствия при попытке десериализации из предыдущей версии.
Я не эксперт, и я, возможно, не ссылаюсь на эксперта, но, насколько я понял, в целом AssemblyVersion касается «интерфейса» -> что делает сборка, назад совместимость и т. д. А AssemblyFileVersion больше связано с реализацией, сборкой и т. д.
Используйте атрибут AssemblyVersion, чтобы указать версию «Last Compatible-To», и атрибут AssemblyFileVersion, чтобы указать версию сборки ».
-> http://www.shitalshah.com/blog/IsJeffRichterScrewingUpTheNetVersioning.aspx
// О, и еще кое-что.
Существуют определенные обстоятельства (о которых я не совсем понимаю, поскольку я только слышал о них, но на самом деле не сталкивался с ними), когда при попытке обновить приложение с помощью dll в GAC старые версии dll выиграли ' не могут быть перезаписаны новыми версиями с тем же номером версии сборки, если только версия файла не изменилась. (Это предложение достаточно сложное? Уже поздно ...)