将.dll加载为字符串

我有一个函数需要获取路径来运行它们的dll文件。 为了更方便地使用我的应用程序,我不想让用户键入dll文件的路径。 我已经将dll文件添加为资源,但是我的方法需要以字符串的形式获取.dll文件的路径。 如何获得我的dll文件的字符串称为“test2.dll”? 我发现的所有内容都是关于程序本身使用.dll文件中的函数,但并未加载包含.dll的路径。


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

你可以试试这个

Assembly.GetExecutingAssembly().Location

会给你执行程序集的补丁,然后:

System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)

这里是更多的信息


如果我理解你,这听起来像你有一个DLL文件是项目中的嵌入式资源,并且你想要能够提取该DLL,然后从该DLL中加载资源。 这是一个例子。

首先,你需要将DLL提取到一个字节数组中:

byte[] buffer;
var assembly = Assembly.GetExecutingAssembly();
using (var stream = assembly.GetManifestResourceStream("SomeNamespace.somefile.dll"))
{
    buffer = new byte[stream.Length];
    stream.Read(buffer, 0, buffer.Length);
}

所以现在你有这个DLL文件包含到你的buffer字节数组中。 接下来,我们需要将字节数组写到某处的文件中:

string file = Path.GetTempPath() + "somefile.dll";
File.WriteAllBytes(file, buffer);

现在,最后,您可以读取您的DLL并提取您需要的任何资源:

var assembly = Assembly.Load(file);
using (var stream = assembly.GetManifestResourceStream("SomeNamespace.someresourcefile.png"))
{
    // Read in stream and do something with the resource
}
链接地址: http://www.djcxy.com/p/44491.html

上一篇: load .dll ressource as string

下一篇: Managed C dll calling C# dll, FileNotFoundException