序言:我正在嘗試將我的C#csproj與其餘的C++和C++/CLI代碼庫cmake版本集成。我收到了建議不要嘗試這樣做,因爲CMake在Visual Studio中與.NET不能很好地協作,但是在實現一些定製之後,我感覺我非常接近。我可以在cmake時間獲取由CMake爲特定vcproj生成的GUID嗎?
我的一部分自定義是使用configure_file命令在CMake時編輯csproj文件,根據正在發生的構建類型(例如x86,x64)對其進行自定義。
的問題是,我使用一些ProjectReference標籤引用C++/CLI項目:
<ProjectReference Include="..\..\WrapperProject\WrapperProject.vcproj">
<Project>{7BD6E175-CDD1-4F8D-A3B2-0AC862E62C03}</Project>
<Name>WrapperProject</Name>
</ProjectReference>
...每當CMake的緩存重建的GUID不能一成不變,因爲他們更改項目(糾正我,如果我錯了)。
所以我想要做的是找到我們在CMake時間什麼GUIDs計劃這些項目,並相應地編輯vcproj文件。
谷歌告訴我,人都能夠使用「set_property」設置GUID,就像這樣:
set_property(CACHE ${target_name}_GUID_CMAKE PROPERTY VALUE ${MY_GUID})
...但我似乎無法找到吸氣等同。我已經試過這樣的事情:
get_property(WRAPPER_GUID CACHE內部屬性WrapperTargetName_GUID_CMAKE)
...沒有運氣。感謝您的幫助!
由於可以從CMake中設置固定的項目GUID,因此您應該也可以編寫固定的ProjectReference標籤,對嗎? – ronkot 2013-03-15 07:04:22