我有一个编译为DLL的C#类库。我的类库也引用另一个类库DLL。类库作为类库中的嵌入式资源
我需要依赖DLL添加为嵌入的资源,所以我只有1个DLL文件。该文件是我无法控制的软件的插件,并且软件无法正确解析依赖项DLL。添加类库的Windows
我发现实例形式的项目,但无法找到如何添加一个类库作为一个类库项目嵌入的资源。
我有一个编译为DLL的C#类库。我的类库也引用另一个类库DLL。类库作为类库中的嵌入式资源
我需要依赖DLL添加为嵌入的资源,所以我只有1个DLL文件。该文件是我无法控制的软件的插件,并且软件无法正确解析依赖项DLL。添加类库的Windows
我发现实例形式的项目,但无法找到如何添加一个类库作为一个类库项目嵌入的资源。
装配添加到您的项目作为一个普通的文件,而不是在项目的根引用(它可以在任何地方,但它更容易把它放在那里对此的解释)。
点击它,在解决方案资源管理器,并在属性窗口中的“生成操作”设置为“嵌入的资源”。
您可以使用下面的代码在运行时加载组件(记得更改传递到GetManifestResourceStream字符串):
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TestProject.MyAssembly.dll"))
{
if (stream == null)
{
throw new InvalidOperationException("Cannot find resource.");
}
using (var reader = new BinaryReader(stream))
{
var rawAssembly = new byte[(int)stream.Length];
reader.Read(rawAssembly, 0, (int)stream.Length);
var assembly = Assembly.Load(rawAssembly);
// Do what you want with the assembly
}
}
所以,如果我的代码目前看起来像这样,我将如何改变它来实现你所描述的? 'using EmbeddedAssembly; 命名空间MainClassLibrary { 公共部分类MyCustomControl:用户控件 { \t \t公共MyCustomControl() \t \t { \t \t \t变种插件=新EmbdeddedWidgetControl(); \t \t} \t} }' 不好意思的问题。我以前从未使用嵌入式资源。 – modernzombie
http://stackoverflow.com/a/625115/1338915 – Chad
使用GAC或实现AppDomain.CurrentDomain.AssemblyResolve事件或使用ILMerge。 –