我正在将Visual Studio 2017和CMake 3.15.4用于C#/ Windows表单项目,这需要少量外部引用。我通过以下方式进行设置:
set_property(TARGET my_exe PROPERTY VS_DOTNET_REFERENCES
${dependency_1}
${dependency_2}
${dependency_3})
set_property(TARGET my_exe PROPERTY VS_DOTNET_REFERENCE_${dependency_1}
"path_to_dependency_1")
...
我注意到在每个依赖项的“属性”菜单下,默认情况下始终将“特定版本”属性设置为False
。我想知道如何True
在CMake脚本中将其设置为使目标使用特定版本的依赖项。感谢您的指导。
VS_DOTNET_REFERENCE_<refname>
这里的文档没有提及版本。但是,尽管没有得到CMake的正式支持,也可以将SpecificVersion
参考属性强制设置为True
。
这里有一个很好的答案,记录了将检查特定版本的情况。该检查受程序集引用中版本信息的存在以及<SpecificVersion>
元素的存在的影响。请参阅此处转载的表:
| Version information
| Present Not present
----------------------------+------------------------------
<SpecificVersion> |
- Present, has value True | Yes (1) Yes (check always fails) (2)
- Present, has value False | No (3) No (4)
- Not present | Yes (5) No (6)
因为CMake Visual Studio生成器还没有提供一种机制来设置<SpecificVersion>
引用属性,所以我们必须通过插入版本信息和引用名称来强制执行特定版本检查(上表中的情况5)。尝试这样的事情:
set_property(TARGET my_exe PROPERTY
"VS_DOTNET_REFERENCE_Dependency1, Version=2.1.1"
"path_to_dependency_1"
)
这会将版本设置为2.1.1
,并将“特定版本”引用属性设置为True
,而不是默认值False
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句