2015-01-30 1 views
2

ASP.NET 웹 사이트에서 ActiveX로로드되는 작성된 dll 클래스 라이브러리의 현재 경로를 가져올 수 없습니다.작성한 dll 클래스 라이브러리의 현재 경로를 가져와야합니다.

몇 가지 명령을 시도했지만 성공하지 못했습니다.

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 

의 경로가 아닌 예를 들어, 나는 변수 _path 현재 경로를 얻기 위해 노력했다.

내 DLL 클래스 라이브러리의 현재 경로는 다음과 같습니다

보시다시피
F:\webapp\WebScan\Scan\ 

는이 클래스 라이브러리는 ApplicationControl입니다. 현재 경로를 얻는 것이 불가능한 이유는 무엇입니까?

답변

1

주요 문제는 라이브러리가 디스크에 남아있을 것이라고 생각하는 것입니다.

시작 중에 ASP.NET은 모든 어셈블리를 가져 와서 원하는대로 사용할 수있는 임시 폴더로 이동합니다.

따라서 C:\Users\miyahira\AppDataLocalTemp\3f3574554-2ef8-e8r9-9c8b-e40561d03bb은 올바른 경로입니다.

ActiveX 구성 요소는 어떻게 응용 프로그램에 추가됩니까? 그리고 ASP.NET 사이트의 위치는 무엇입니까? 속성에서 경로를 가져올 수는 있지만 작동 여부는 말할 수 없습니다.

관련 문제