我有以下问题:
我正在建立一个几乎没有非Windows依赖的图书馆。 我想制作dll,以便包含所有的dependecies,而不需要另外的dll与它一起。 我们的想法是只使用它将使用它的项目的新dll,而不是拥有这个新dll正在使用的所有dependecies。
我已经读过将它们作为资源包括在内但是它似乎无法按预期工作,使用此代码(我在类的静态构造函数中调用它需要依赖,所有依赖都在子文件夹lib中图书馆项目):
internal static void Include()
{
if (!included)
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
{
String resourceName = "namespaceOfTheLibrary" + ".lib." + new AssemblyName(args.Name).Name + ".dll";
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
{
Byte[] assemblyData = new Byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
return Assembly.Load(assemblyData);
}
};
included = true;
}
为了在许多项目中保持代码更新而不忘记任何依赖,这将非常有用。
希望有可能。
由于