为我自己的missionplanner版本制作一个安装程序(win形式的开源项目)
我正在制作自己的开源项目版本,称为 Mission Planner(它是一个允许控制多种类型无人机的应用程序,因此我将其配置为对我的无人机更有效)。我现在正在尝试为我的新应用程序构建一个安装程序,但我在某些方面遇到了困难。
这是我到目前为止所做的。
在同一解决方案中创建一个新的安装项目,在应用程序文件夹中我有一个项目输出(程序集单独显示),我创建了两个快捷方式,一个用于桌面,另一个用于程序菜单。然后我修改了不同的参数(名称、网址、制造商等......)。然后我清理了解决方案,构建了安装程序(一切正常),然后右键单击并选择“安装”。一切都很好,我的桌面和程序菜单上都有快捷方式。
但是
当我尝试执行该应用程序时,它不起作用,这是输出窗口中出现的错误:
System.TypeInitializationException:类型初始值设定项 “MissionPlanner.MainV2”引发异常。 ---> System.BadImageFormatException:无法加载文件或程序集 'System.ValueTuple,版本=4.0.0.0,文化=中性, PublicKeyToken=cc7b13ffcd2ddd51' 或其依赖项之一。参考 不应加载程序集来执行。他们只能是 在仅反射加载器上下文中加载。 (HRESULT 的异常: 0x80131058) ---> System.BadImageFormatException:无法加载 执行参考程序集。 --- 内部异常堆栈结束 跟踪 --- 在 MissionPlanner.MAVLinkInterface..ctor() 处 MissionPlanner.MainV2..cctor() --- 内部异常堆栈结束 跟踪 --- 在 MissionPlanner.MainV2..ctor() 处 MissionPlanner.Program.Start(String[] args)
因此,如果有人知道这意味着什么,我会很高兴知道发生了什么以及是否有任何解决方案可以解决此问题。
I am making my own version of an open source project call Mission Planner (it's an app that allows to control many types of drone so I configured it to be more effictient for my drones). I am now trying to build an installer for my new app but I am struggling with some aspects.
Here's what I did so far.
Create a new setup project in the same solution, in the app folder I had a project output (the assembly appears on it's own), i created two shortcuts, on for the desktop and the other for the programs menu. Then i modified the different parameters (name, url, manufacturer etc...). Then I cleaned the solution, built the installer (everything was ok) and then I right-clicked and selected the "install". Everything was okay, I had my shortcut on the desktop and program menu.
BUT
When I try to execute the app it does not work, here is the error I have in the output window :
System.TypeInitializationException: The type initializer for
'MissionPlanner.MainV2' threw an exception. --->
System.BadImageFormatException: Could not load file or assembly
'System.ValueTuple, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. Reference
assemblies should not be loaded for execution. They can only be
loaded in the Reflection-only loader context. (Exception from HRESULT:
0x80131058) ---> System.BadImageFormatException: Cannot load a
reference assembly for execution. --- End of inner exception stack
trace --- at MissionPlanner.MAVLinkInterface..ctor() at
MissionPlanner.MainV2..cctor() --- End of inner exception stack
trace --- at MissionPlanner.MainV2..ctor() at
MissionPlanner.Program.Start(String[] args)
So if anyone knows what this means I would be glad to know what is going on and if there's any solution to fix this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您尝试将 64 位 DLL 加载到 32 位进程中,则会发生 BadImageFormatException,反之亦然。确保仅提供 64 位 DLL 或仅提供 32 位 DLL。
异常的名称与图片无关。 Microsoft 调用 PE(可移植可执行文件)文件映像。
BadImageFormatException occurs if you try to load a 64 bit DLL into a 32 bit process or vice versa. Make sure you ship 64 DLLs only or 32 bit DLLs only.
The name of the exception has nothing to do with pictures. Microsoft calls PE (Portable Executable) files images.