Не понятно по какой причине, при попытке выполнить ExtensionMethod (произвольного класса) на страничке ascx-контрола визуал студия (у меня 2010я) пытается загрузить сборку System.Xml... не может и ругается сообщением:
error CS0012: The type 'System.Xml.IXmlLineInfo' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'.
Код примитивный:
на самой страничке:
<%=new MyTestClass().ExtMethod() %>
и в code-behind'е:
public static class TestExtention
{
public static string ExtMethod(this MyTestClass test)
{
return "Hope for result";
}
}
Пытался добавить референс на либу — студия говорит, что такой референс уже есть...
В инете видел много описаний подобных проблем, но ответа толком нигде нет. Говорили люди, что вроде нужно по ВСЕЙ системе поудалять все временные файлы (остановив предварительно IIS) и что-то еще... но толком не понятно, что именно
Если кто-то может помощь, пожалуйста. Буду ОЧЕНЬ благодарен.
_B_>>Пытался добавить референс на либу — студия говорит, что такой референс уже есть...
R>Попробуйте добавить ссылку в Web.config.
Добавил так:
[code]
<add assembly="System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"/>
[/ccode]
Пишет:
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Could not load file or assembly 'System.Xml, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Честно говоря, не уверен, что у моей либы именно такой токен/версия... Я вижу в GAC-е лежит System.Xml, ещё несколько разных длл-ок в папках:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5\Profile\Client\System.XML.dll
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.XML.dll
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.XML.dll
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v3.0\System.Xml.dll
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\System.Xml.dll
Для какой нужно брать версию/токен (и как их брать)? Пдскажите, плиз.
Здравствуйте, _Budda_, Вы писали:
_B_>Тогда возникает другой вопрос: как узнать версию и паблик-токен длл-ки?
В панели Solution Explorer выберите YourSolution / YourProject / References / System.Xml и смотрите свойства в панели Properties. Потом
http://www.gotdotnet.ru/blogs/netguru/8513.