Преследуя отдельную проблему Я попал в очень странную ситуацию. Демо-код будет:
public class Global : HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
Log("In Application_Start");
SomeClass.SomeProp = ConfigurationManager.AppSettings["PropValue"];
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
Log("In Application_BeginRequest");
try
{
this.Application_Start(null, null);
}
catch ( Exception ex )
{
Log(ex.ToString());
}
Log("At the end of Application_BeginRequest");
}
}
Что я получаю в своем журнале:
In Application_BeginRequest
Could not load file or assembly 'vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
System.IO.FileNotFoundException
at MyRootNamespace.Global.Application_Start(Object sender, EventArgs e)
at MyRootNamespace.Global.Application_BeginRequest(Object sender, EventArgs e) in D:\My Documents\Visual Studio 2008\Projects\SolutionDir\ProjectDir\Global.asax.cs:line 109
At the end of Application_BeginRequest
Это не имеет никакого смысла для меня вообще. Рассмотрим:
vjslib
ссылается мой основной проект (сборка), который включает класс Global
. Почему сборка вообще загружалась, если не удалось разрешить ее зависимости?
SomeClass
находится в другой сборке, которая также ссылается на vjslib
. SomeClass
использует vjslib
, и некоторые члены предоставляют классы, которые являются производными от классов в vjslib
, но используемое здесь свойство - это просто старая старая строка.
- Почему в первой строке трассировки стека нет номера строки?
Разрешены ли зависимости для каждого метода? Я думал, что Microsoft больше не делает таких вещей . Что здесь происходит?