C# 在项目中包含外部DLL';s内置VS 2013
我在VS 2013中有2个解决方案(c#),SolutionA包含网站等,SolutionB包含常见逻辑,如密码生成器等(我也用于其他解决方案) SolutionB使用外部Bcrypt dll(除其他外)。但是,当我在SolutionA中包含对SolutionB中的Project/dll的引用时,我需要手动引用SolutionB中使用的dll。因此,我的SolutionA仍然需要对Bcrypt DLL的引用…即使这只在SolutionB代码中使用 如何将此外部Bcrypt dll包含到从SolutionB构建的dll中,这样我就不需要引用SolutionA中的任何其他内容,只需要引用我自己的SolutionB dllC# 在项目中包含外部DLL';s内置VS 2013,c#,.net,visual-studio,dll,build,C#,.net,Visual Studio,Dll,Build,我在VS 2013中有2个解决方案(c#),SolutionA包含网站等,SolutionB包含常见逻辑,如密码生成器等(我也用于其他解决方案) SolutionB使用外部Bcrypt dll(除其他外)。但是,当我在SolutionA中包含对SolutionB中的Project/dll的引用时,我需要手动引用SolutionB中使用的dll。因此,我的SolutionA仍然需要对Bcrypt DLL的引用…即使这只在SolutionB代码中使用 如何将此外部Bcrypt dll包含到从Solu
谢谢,希望不要太混乱:)有各种选项,如ILMerge/自定义工具等,可以将一个DLL嵌入到另一个DLL中。以下是一种代码方式:
'copy local'=false
嵌入式资源
AssemblyResolve
事件,如下所示:Assembly.getExecutionGassembly()
不起作用,它可能正在尝试在解决方案A的资源流中搜索BCrypt
试一试
thx使用ILmerge并尝试创建最终有效的后期构建脚本。
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
{
string dllName = args.Name + ".dll";
using (var stream= Assembly.GetExecutingAssembly().GetManifestResourceStream(dllName))
{
byte[] assemblyData = new byte[stream.Length];
stream.Read(assemblyData, 0, stream.Length);
return Assembly.Load(assemblyData);
}
};
Assembly.Load("SolutionBDLL")