Уже давно думал как правильно получить путь к сборке.
В принципе обычно работает вот такой код:
Path.GetDirectoryName(Assembly.GetExecutingAssembly().LocalPath)
Однако если сборка была помещена в GAC, то возникают проблемы, так как путь ведет в GAC.
Копаясь с висходниках MSBuild подсмотрел красивый способ получение правильного в любом случае пути:
Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath)
ЗЫ
Естественно вместо "Assembly.GetExecutingAssembly()" можно применять любой другой способ получить ссылку на сборку. Например, вот так можно получить путь к mscorlib.dll:
Console.WriteLine(new Uri(typeof(int).Assembly.CodeBase).LocalPath);
... << RSDN@Home 1.1.4 beta 3 rev. 279>>
Здравствуйте, VladD2, Вы писали:
VD>Уже давно думал как правильно получить путь к сборке.
VD>В принципе обычно работает вот такой код:
VD>VD>Path.GetDirectoryName(Assembly.GetExecutingAssembly().LocalPath)
VD>
VD>Однако если сборка была помещена в GAC, то возникают проблемы, так как путь ведет в GAC.
Не только по ASP.NET (то есть при использовании shadow Copy) он не работает
VD>Копаясь с висходниках MSBuild подсмотрел красивый способ получение правильного в любом случае пути:
VD>VD>Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath)
VD>
И это правильно

ЗЫ. все остальное лирика
... << RSDN@Home 1.1.4 beta 4 rev. 324>>