CMake CSharp参考nuget packges

时间:2018-05-09 09:55:52

标签: c# cmake

我有一个通过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)?

谢谢,

最高

1 个答案:

答案 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以获得更详细的说明。