c++ - 如何修复引用特定 NuGet 包交付的 dll 版本(VS2017)的托管 C++ 程序集
问题描述
我正在构建一个托管 c++ dll (udnet.dll),它引用了 Nuget 包交付的 dll
包.config
<packages>
<package id="ForeignLanguage" version="2.0.5" allowedVersions="[2,3)" />
</packages>
在完整构建中使用时,ForeignLanguage.dll 的实际版本是 2.0.6,因为自从构建 udnet.dll 以来,它有一个小错误修复。
但是,加载 udnet.dll 时会失败,因为它正在寻找 2.0.5
如何构建 udnet.dll,这样它就不会对 ForeignLanguage 的版本那么挑剔?如果主要版本不匹配,我真的希望它失败。即(2.0.0.0)
解决方案
问题出在 ForeignLanguage.dll,我没有在 AssemblyInfo.cpp 中将 AssemblyVersion 设置为 2.0.0.0
#define VER_FILE_VERSION_STR STRINGIZE(GITVERSION_Major) \
"." STRINGIZE(GITVERSION_Minor) \
"." STRINGIZE(GITVERSION_Patch) \
".0"
#define VER_VERSION_STR STRINGIZE(GITVERSION_Major) \
".0.0.0"
[assembly:AssemblyVersion(VER_VERSION_STR)];
[assembly:AssemblyFileVersion(VER_FILE_VERSION_STR)];
推荐阅读
- ios - 在 iOS、SwiftUI 的 Documents Directory 中保存数据
- qt - 在 qt 中安装 qtopcua 时生成错误
- r - 如何查找特定于 ODBC 驱动程序的参数
- python - 在列表python中使用if语句
- gradle - 带有 arquillian 的 gradle 多模块中的 Jacoco 覆盖
- sql - Hive - 如何在同一列上使用一个数值检查 Null 值
- r - ggplot2的不同属性的散点图函数
- mysql - 总和数量,但结果在 Mysql 中很奇怪
- pine-script - 仅在最新(今天)价格上方显示行(TradingView Pine 脚本)
- python - PyQT 在 GraphicsView 中保存项目(整个方法)并加载它们?