从外部部件打开文件

本文关键字:文件 从外部部 | 更新日期: 2023-09-27 18:27:27

我有一些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/en-us/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文件的方式。