Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Снова регистрация ... 
:(
    Опции темы
Wanderer2019
Дата 19.9.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



бъясните плиз на пальцах... как зарегестрировать мою Dll (Framework 2.0)
Задолбался уже... пробую все, что написано в MSDN, затем проверяю в Ole Viewer, а его там нет. =(

PM ICQ MSN   Вверх
ivashkanet
Дата 19.9.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Wanderer2019, что значит зарегистировать? В GAC?
PM MAIL WWW ICQ   Вверх
Wanderer2019
Дата 19.9.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



да... поместить в GAC, чтобы в дальнейшем можно было создать данный объект, не подключая библиотек... т.е. что то типа CreateObject
PM ICQ MSN   Вверх
reloni
Дата 19.9.2006, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 10.5.2006
Где: Москва

Репутация: 3
Всего: 4



Что бы помещать сборку к кеш, нужно сначала присвоить ей строгое имя. В свойствах проекта выбираешь Signing и ставишь галку Sign Assembly. Далее помещаешь сборку в кеш. Далее в проекте добавляешь референс на свою сборку и пользуешься. Это в общих чертах, я этим занимался только один разsmile
PM MAIL ICQ   Вверх
ivashkanet
Дата 19.9.2006, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



1) Подписываем сборку (создаем StrongName)
а) либо через VS (свойства проекта ---> Подписывание)
б) через командную строку (посмотри в MSDN)
2) Регистрируешь сборку в GAC
а) Просто в Эксплориере кидаешь файл со сборкой в папку C:\WINDOWS\assembly (p.s. физически ее на диске нет)
б) через командную строку (опять же в MSDN)

Добавлено @ 12:27 
Цитата

To create and sign an assembly with a strong name using the Assembly Linker
At the command prompt, type the following command: 

al /out:<assembly name> <module name> /keyfile:<file name>


In this command, assembly name is the name of the assembly to sign with a strong name, module name is the name of the code module used to create the assembly, and file name is the name of the container or file that contains the key pair. 
The following example signs the assembly MyAssembly.dll with a strong name using the key file sgKey.snk.

al /out:MyAssembly.dll MyModule.netmodule /keyfile:sgKey.snk

To sign an assembly with a strong name using attributes
In a code module, add the AssemblyKeyFileAttribute or the AssemblyKeyNameAttribute, specifying the name of the file or container that contains the key pair to use when signing the assembly with a strong name.

The following code example uses the AssemblyKeyFileAttribute with a key file called sgKey.snk, located in the directory where the assembly is compiled. This assumes that the assembly is compiled using the command-line compilers vbc.exe and csc.exe.

Visual Basic  Copy Code 
<Assembly:AssemblyKeyFileAttribute("sgKey.snk")>
 
C#  Copy Code 
[assembly:AssemblyKeyFileAttribute(@"sgKey.snk")]
 
Note  
In development environments such as Visual Studio, the assembly might not be compiled in the project directory. For example, some versions of Visual Studio compile C# projects in a bin\Debug subdirectory. In that case, the path in the code example would be "..\\..\\sgKey.snk". In Visual Studio 2005 the key file for C# can be specified in project settings.
 

You can also delay sign an assembly when compiling. For more information, see Delay Signing an Assembly.

When signing an assembly with a strong name, the Assembly Linker (Al.exe) looks for the key file relative to the current directory and to the output directory. When using command-line compilers, you can simply copy the key to the current directory containing your code modules.



Цитата

The Global Assembly Cache tool allows you to view and manipulate the contents of the global assembly cache and download cache.
 
gacutil [options] [assemblyName | assemblyPath | assemblyListFile]


Это сообщение отредактировал(а) ivashkanet - 19.9.2006, 12:28
PM MAIL WWW ICQ   Вверх
Exception
Дата 19.9.2006, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Причём тут GAC? Тебе просто нужно загрузить сборку через статический метод Assembly.LoadFrom(), а затем получить нужный тип. Сборку же можно хранить и в папке приложения.
PM   Вверх
Wanderer2019
Дата 19.9.2006, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



Exception
неее... скорей всего мне придется грузить ее из VBS. 
PM ICQ MSN   Вверх
Wanderer2019
Дата 19.9.2006, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



вот опять ничего не сработало... итак.. чтобы было понятней что именно я делаю и где может бытьо ошибка опишу все по шагам.
1. Создал проект WindowsControlLibrary2
     Итого имею Проект WindowsControlLibrary2 и в нем UserControl1
2. Настроил подписывание проекта через VS 2005
3. Чтобы быть уверенным что утилита al вся имеется в одном месте перегнал мою dll в папку с фреймворком  и туда же кинул файл ключа (snk).
4. Прописываю в командной строке:
al.exe /out:WindowsControlLibrary2.dll WindowsControlLibrary2.UserControl1 /keyfile:mykey.snk

в ответ получаю:
ALINK: error importing file
'c:\.....\WindowsControlLibrary2.UserControl1' - - The system cannot find the file specified.


Получается что этот гад зачем то ищет файл с именем WindowsControlLibrary2.UserControl1 ... естессьно его там нет... зачем он ему то нужен??? и что это за файл...
PM ICQ MSN   Вверх
ivashkanet
Дата 19.9.2006, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Wanderer2019 @  19.9.2006,  14:01 Найти цитируемый пост)
al.exe /out:WindowsControlLibrary2.dll WindowsControlLibrary2.UserControl1 /keyfile:mykey.snk

А что сие означает? Можно узнать?

Добавлено @ 14:08 
тебе нужно что-то типа 
gacutil /i WindowsControlLibrary2.dll

Добавлено @ 14:09 
Блин, Wanderer2019, al  делает строгое имя сборке. А оно у тебя уже есть  smile 

PM MAIL WWW ICQ   Вверх
Wanderer2019
Дата 19.9.2006, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



Цитата(ivashkanet @  19.9.2006,  14:07 Найти цитируемый пост)
Блин, Wanderer2019, al  делает строгое имя сборке. А оно у тебя уже есть  smile 

Хорошо.. в таком случае как зарегистрить эту сборку?????
PM ICQ MSN   Вверх
ivashkanet
Дата 19.9.2006, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Wanderer2019 @  19.9.2006,  14:15 Найти цитируемый пост)
Хорошо.. в таком случае как зарегистрить эту сборку?????

Цитата(ivashkanet @  19.9.2006,  14:07 Найти цитируемый пост)
тебе нужно что-то типа 
gacutil /i WindowsControlLibrary2.dll




PM MAIL WWW ICQ   Вверх
Wanderer2019
Дата 19.9.2006, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



Цитата(ivashkanet @  19.9.2006,  14:20 Найти цитируемый пост)
gacutil

просто копирует dll в папку GAC... на этом ее функциональность заканчивается...
она никак не регистрируется в результате этих действий...
через Ole Viewer и при помощи CreateObject её не видно и не слышно.
PM ICQ MSN   Вверх
ivashkanet
Дата 19.9.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



А через проводник? 
C:\WINDOWS\assembly
 smile 
PM MAIL WWW ICQ   Вверх
Wanderer2019
Дата 19.9.2006, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



да мне честно говоря все равно, где она будет лежать... просто привык что всякие ActiveX лежат в гаке... основным критерием является способность получить инстанс через CreateObject... через gacutil не получилось... т.е. он ее в гак бросил, но исключительно как мертвый груз... в системе он ее так и не прописал... что делать не знаю =(

PM ICQ MSN   Вверх
Exception
Дата 19.9.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Ты явно что-то путаешь. ActiveX никогда не лежали и не будут лежать в GAC'е. GAC - это вообще кэш для сборок .NET, и тебе он вообще не нужен, да и сборке необязательно давать строгое имя. Для регистрации в GAC действительно нужно только скопировать файл в его директорию. А тебе нужно:
1) Сделать сборку и классы ComVisible.
2) Зарегистрировать её как COM-сервер regsvr32.exe "путь к сборке".
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0593 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.