簡體   English   中英

從外部程序集打開文件?

[英]Open a file from an external assembly?

我有一些位於外部程序集中的XML文件。 我有一個引用外部程序集的Windows應用程序,但是當我運行Windows應用程序並嘗試從文件中讀取文件時,它使用Windows應用程序路徑而不是文件所在的程序集路徑。

外部程序集位於c:\\ service \\ tp.dll中

Windows應用程序位於c:\\ project \\ windows \\ bin。

tp.dll包含一個調用File.OpenRead的方法,但是當我執行Windows應用程序並從tp.dll調用該方法時,它使用的是Windows應用程序路徑而不是tp應用程序路徑。

假設您編寫了該外部程序集並知道所有內容應該在哪里,是否嘗試過使用Assembly類來引用它?

http://msdn.microsoft.com/zh-CN/library/system.reflection.assembly.aspx

我使用此類加載具有在當前執行的程序集中嵌入的構建動作的文件,但我不明白為什么您無法使用此類加載另一個程序集,然后調用.GetManifestResourceStream(所需文件的路徑)方法。

這是我使用它從當前程序集中加載嵌入式數據的方式。 將.GetExecutingAssembly()更改為.Load()方法。

            Assembly loader = Assembly.GetExecutingAssembly();
            var rawstream = loader.GetManifestResourceStream(template);
            byte[] byteArray = rawstream.ReadToEnd();

查閱MSDN文檔之后,這可能是開始匯編參考所需要的:

      Assembly SampleAssembly = Assembly.Load
        ("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");

也許放一些更多的描述和一些代碼。 重要-如何加載程序集-如何訪問XML文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM