Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > System.EnterpriseServices.dll could not be opened


Автор: Vit 17.3.2009, 00:26
Windows XP + SP3
MS Visual Studio 2005

Сразу после установки созраю новый Web Site (ASP.NET/C#), при попытке запуска пустой страницы выдаёт следующую ошибку -



Цитата

Error 1 Metadata file 'c:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll' could not be opened -- 'Error importing module 'System.EnterpriseServices.Wrapper.dll' of assembly 'c:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll' -- The system cannot find the file specified. '



И как это лечить? 

Автор: Partizan 17.3.2009, 01:10
Vit

оно самое:
http://social.msdn.microsoft.com/Forums/en-US/netfxsetup/thread/be124dc4-1f99-44d0-bda9-01cfdfef4299/

Автор: Vit 17.3.2009, 05:46
Вроде да, только:

Цитата

From the error description, it indicated that the assembly System.EnterpriseServices.Wrapper.dll doesn't registered in GAC.

So you can either register the assembly into GAC or use/reference the assembly as a private assembly rather than public one.


Как это конкретно сделать? Смысл того что нет нужной сборке в кэше я и сам понял, что надо нужную сборку в этот кэш поместить - тоже не надо семи пядей иметь чтобы догадаться... Вот если б кто сказал как это практически сделать....

Автор: jonie 17.3.2009, 09:50
взять fuslogvw (входит в поставку VS) и посмотреть как биндятся сборки (и откуда и зачем) не судьба?

Добавлено через 36 секунд
а поставить в GAC сборку это gacutil -i filename.dll

Автор: Partizan 17.3.2009, 09:55
Vit, в комплекте с Windows SDK(Обычно лежит в \Program Files\Microsoft SDKs\Windows\<Версия SDK>\bin) есть утилита gacutil. 

Запускается из командной строки. Вот, например, эта команда поместит сборку mydll.dll в GAC:

gacutil.exe /i mydll.dll

Автор: Vit 17.3.2009, 15:18
Цитата(jonie @  17.3.2009,  00:50 Найти цитируемый пост)
а поставить в GAC сборку это gacutil -i filename.dll 


Цитата(Partizan @  17.3.2009,  00:55 Найти цитируемый пост)
Vit, в комплекте с Windows SDK(Обычно лежит в \Program Files\Microsoft SDKs\Windows\<Версия SDK>\bin) есть утилита gacutil. 

Запускается из командной строки. Вот, например, эта команда поместит сборку mydll.dll в GAC:

gacutil.exe /i mydll.dll




Запускаю - 

Цитата

Microsoft Windows XP [Version 5.1.2600]
© Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\ServicePackFiles\i386>"C:\Program Files\Microsoft SDKs\Windows\v6.0A\
Bin\gacutil.exe" /i system.enterpriseservices.dll
Microsoft ® .NET Global Assembly Cache Utility.  Version 3.5.30729.1
Copyright © Microsoft Corporation.  All rights reserved.

Assembly successfully added to the cache



после этого среда выдаёт ту же ошибку.


Цитата(jonie @  17.3.2009,  00:50 Найти цитируемый пост)
взять fuslogvw (входит в поставку VS) и посмотреть как биндятся сборки (и откуда и зачем) не судьба?



Судьба, если :
1. Знать о существовании fuslogvw 
2. Знать что там смотреть

Взял, запустил fuslogvw - посмотрел на пустое окно... 


Автор: Partizan 17.3.2009, 16:12
Цитата

C:\WINDOWS\ServicePackFiles\i386>"C:\Program Files\Microsoft SDKs\Windows\v6.0A\
Bin\gacutil.exe" /i system.enterpriseservices.dll


Vit, ошибка вроде говорит об отсутствии system.enterpriseservices.wrapper.dll

лежит это дело тут:

%WINDOWS%\Microsoft.NET\Framework\v2.0.50727\system.enterpriseservices.wrapper.dll

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)