2015-01-30 2 views
2

Я не могу получить текущий путь к моей созданной библиотеке DLL-классов, которая загружается как ActiveX на веб-сайт ASP.NET.Нужно получить текущий путь к моей библиотеке классов созданных dll

Я пробовал несколько команд, но не удался. Например, я пытался получить текущий путь в переменной _path:

namespace WebScanControl { 

    [ApplicationControl(Width=640,Height=480)] 
    public sealed partial class ScanControl:ApplicationControl { 

     public ScanControl() { 
      InitializeComponent(); 
     } 

     protected override void Construct(ReadOnlyCollection<object> args) { 
      try { 

       string _path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 


      } catch(Exception ex) { 
       MessageBox.Show(string.Format("{1}{0}{2}", Environment.NewLine, ex.Message, ex.StackTrace), ex.GetType().Name, MessageBoxButtons.OK, MessageBoxIcon.Error); 
      } 
      base.Construct(args); 
     } 

    } 
} 

Однако переменная _path получает:

C:\Users\miyahira\AppDataLocalTemp\3f3574554-2ef8-e8r9-9c8b-e40561d03bb 

который не его путь.

Текущий путь моей длл библиотеки классов:

F:\webapp\WebScan\Scan\ 

Как вы видите, этот класс библиотека является ApplicationControl. Это причина, по которой невозможно получить свой текущий путь?

ответ

1

Ваша основная проблема заключается в том, что вы думаете, что библиотека останется на диске.

ASP.NET во время запуска get получает все сборки и перемещает его во временную папку, где он может использовать их по своему усмотрению.

Таким образом, C:\Users\miyahira\AppDataLocalTemp\3f3574554-2ef8-e8r9-9c8b-e40561d03bb - это правильный путь.

Как ваш компонент ActiveX добавляется в приложение? И каково местоположение сайта ASP.NET? Вы можете попытаться получить путь от свойства , но не можете точно сказать, будет ли это работать или нет.

Смежные вопросы