我有一个通过CMake配置的CSharp项目,我在引用nuget包时遇到了问题。我试图通过
添加它们set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DOTNET_REFERENCES
"../../packages/ExcelDna.Integration.0.34.6/lib/ExcelDna.Integration.dll")
恢复nuget包后,我仍然需要双击Visual Studio(2015)中的引用才能成功编译程序。还有一个版本号独立的方式来添加对nuget包的引用吗?如何添加某些包所需的ExtensionTargets(例如ExcelDna.AddIn)?
谢谢,
最高
答案 0 :(得分:1)
您可以使用VS_DOTNET_REFERENCE_<YourLibrary>
来使CMake查找您的Nuget包引用。试试这个:
set_property(TARGET ${PROJECT_NAME} PROPERTY
VS_DOTNET_REFERENCE_ExcelDna.Integration
${CMAKE_BINARY_DIR}/packages/ExcelDna.Integration.0.34.6/lib/ExcelDna.Integration.dll
)
请注意,完整的DLL名称必须附加到VS_DOTNET_REFERENCE_
指令后才能创建完整的变量。但是,我还没有看到独立于版本号的方式来加载Nuget软件包,并且我不得不手动编辑CMake文件以包括这些软件包。您可以查看this answer以获得更详细的说明。