能'在其他系统上找不到该装配件。

吉姆

新成员
已加入
2017年4月16日
留言内容
3
编程经验
1-3
你好,
我下载了这个程序集 //inputsimulator.codeplex.com/ 模拟键盘按键。
一切正常,但是如果我将debug文件夹中的.exe文件放在另一个系统上,则会收到错误消息,提示它找不到该程序集。
知道我做错了什么吗?而且更重要的是,将来我可以做什么,因此自定义程序集也可以在其他计算机上工作。

亲切的问候,吉米
 

吉姆

新成员
已加入
2017年4月16日
留言内容
3
编程经验
1-3
解决了这样的问题:

将dll嵌入已编译的exe中:
1-更改引用中dll的属性,以使Copy Local = false
2-将dll文件作为附加文件添加到项目中,而不仅仅是引用
3-更改文件的属性,以使Build Action = Embedded Resource
4-在主exe中的Application.Run之前粘贴此代码

AppDomain.当前域.部件Resolve + = (目的 发件人, ResolveEventArgs args) =>
{
细绳 这个Exe = System.反射.部件.GetExecutingAssembly().GetName().姓名;
System.反射.部件Name 嵌入式组件 = 新的 System.反射.部件Name(参数.姓名);
细绳 resourceName = 这个Exe + "." + embeddedAssembly.姓名 + ".dll";

使用 (变种 溪流 = System.反射.部件.GetExecutingAssembly().GetManifestResourceStream(资源名称))
{
字节[] assemblyData = 新的 字节[溪流.长度];
stream.读(assemblyData, 0,assemblyData.长度);
返回 System.反射.部件.加载(assemblyData);
}
};
 
最佳 底部