Получение информации о версии файла в Compact Framework

У меня есть некоторый код, который должен быть в состоянии найти номер версии сборки, учитывая строку, указывающую, где она находится.

Я не могу заставить это работать:

Assembly assembly = Assembly.LoadFrom("\\Program Files\\Microsoft SQL Server Compact Edition\\v3.5\\sqlcecompact35.dll");

создает исключение System.IO.IOException: имя файла или сборки '\Program Files\Microsoft SQL Server Compact Edition\v3.5\sqlcecompact35.dll' или одна из его зависимостей не найдена.

И все же файл существует:

FileInfo fileInfo = new FileInfo("\\Program Files\\Microsoft SQL Server Compact Edition\\v3.5\\sqlcecompact35.dll"); 

создает объект, где fileInfo.Exists == true.

Должен ли я передать другое имя файла / путь для загрузки сборки SQL CE? Благодарю.

1 ответ

Решение

sqlcecompact35.dll не является управляемой сборкой и поэтому не может быть загружен с помощью Reflection. Эта DLL, наряду с другими файлами, такими как sqlceqp35.dll, sqlceca35.dll (все дистрибутивы см. В дистрибутиве), являются неотъемлемой частью механизма обработки данных. Единственная управляемая сборка, которую вы можете загрузить таким способом, - это System.Data.SqlServerCe.dll.

РЕДАКТИРОВАТЬ

Получение информации о версии файла для собственного файла не так просто в Compact Framework. Я разработал и опубликовал решение для получения этой информации для вас.

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