c# - 通过 NuGet 更新后 OpenTK 应用程序崩溃
问题描述
通过 NuGet 安装新版本的 OpenTK 后,我们的 Windows 窗体应用程序崩溃。应用程序的其余部分运行,但使用 OpenTK 部分的表单在加载时只会使应用程序崩溃。我们在我们的应用程序中包含两个 dll,OpenTK.dll 和 OpenTK.GLControl.dll,并且直到现在都使用了两个类似的版本。NuGet 提供更新,但两个 dll 的版本控制不同:第一个为 v3.2.0,第二个为 v3.1.0,这也可能导致错误或需要将 NuGet 放入 .config.exe 文件中的信息存储.
我们只有在删除 Application.config.exe 后才会出现这个问题,NuGet 在其中存储了以下几行:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="OpenTK" publicKeyToken="bad199fe84eb3df4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="3.2.0.0" />
</dependentAssembly>
</assemblyBinding>
我们想发布不带 .config.exe 文件的 .exe,并想知道是否有办法将此配置放入 .exe 文件中,从而使我们能够在可用时更新到新版本的 OpenTK。
解决方案
由构建项目时输出文件夹下的文件创建Application.config.exe
。app.config
它在运行时适用于应用程序。如果您想在.exe
没有 .config.exe 文件的情况下发布,您可以将其嵌入app.config
到 exe 中,然后删除bin文件夹中Application.config.exe
的默认值。
1)将App.config的Build Action更改为.Embedded Resource
2)删除bin
并obj
重建您的项目以生成新的输出文件。
3)然后您可以使用已经嵌入该文件的application.exeapp.config
文件。
之后,您可以删除默认由VSapplication.config.exe
生成的。app.config
它已经嵌入到applciation.exe
.
推荐阅读
- javascript - 即使在 .eslintrc 中关闭了规则,也会在浏览器控制台中显示警告
- node.js - Nodejs mongdb 使用 async/await 查询数据
- weka - Weka - 正确/错误分类实例的含义
- flutter - 颤抖,然后我更改文件夹我在这里收到此错误
- jquery - 在 jQuery On 方法中获取父选择器
- javascript - 从 ejs 或 javascript(browser) 文件中获取变量到 Express
- windows - 柯南在生成 CMake 文件时的奇怪行为
- r - 将参数传递给用户定义函数中的用户定义函数
- python - 如何将 python 列表发送到 C 字符串数组和 C 长整数数组?
- css - Openlayers 在带有填充的地图上弹出 autoPan