Определите, зарегистрирован ли файл, и сможете его зарегистрировать. - PullRequest
1 голос
/ 21 октября 2011

Я пытаюсь написать программу на c #. Часть его должна быть в состоянии определить, зарегистрирован ли файл (в основном, dll, но некоторые другие). И тогда пользователь должен иметь возможность выбрать файл (или файлы), которые он / она хочет зарегистрировать, и программа должна зарегистрировать его. Он не должен просто регистрировать все файлы, пользователь должен решить, какую регистрацию

Так что в основном мне интересно, как определить, зарегистрирован ли он и как его зарегистрировать.

Заранее благодарю за помощь

РЕДАКТИРОВАТЬ: ОК, так как определить, зарегистрирована ли сборка .net из программы на C #?

1 Ответ

1 голос
/ 21 октября 2011

Вы должны определить, что значит «быть зарегистрированным». Стандартные файлы DLL нигде не зарегистрированы. (Вот почему можно увидеть хаос под названием «DLL ад».)

Или это COM?

COM-компоненты регистрируются с помощью regsvr32.exe. Вы можете позвонить, чтобы зарегистрировать свои файлы. Это самый простой способ. Если вы по какой-то причине считаете, что вам не нужен этот простой способ, вы можете сделать это вручную - прочитайте документацию COM о том, как компонент может зарегистрироваться сам. (Вы загружаете файл в свое адресное пространство и позволяете ему зарегистрироваться, вызывая в нем функцию регистрации.)

Я не знаю, как на законных основаниях определить, зарегистрирован ли определенный файл в качестве хоста COM-компонента, если вы не знаете, какой компонент находится внутри. Но если вы знаете компонент, вы можете попытаться создать его. Если создание не удалось, файл еще не зарегистрирован.

Или это файлы сборки .NET?

В .NET вам не разрешено «регистрировать» файлы по вашему желанию, вам нужны права администратора. (Процесс должен выполняться в режиме повышенных прав.) Но опять же, вы обычно используете эти файлы .NET DLL без регистрации. Обычно в GAC регистрируются только основные компоненты системы, которым доверяют. Я думаю, что это может быть дыра в безопасности, если вы попытаетесь добавить свои личные файлы в GAC. Поэтому я хотел бы спросить, действительно ли так важно, чтобы они были там зарегистрированы.

...