我正在創建一個用C++/CLI編寫的NuGet包。它充當C#和本機C++之間的互操作。NuGet互操作封裝準則圍繞調試和發佈構建
生成的DLL具有管理的表面區域和本地implib表面區域。
Visual Studio只喜歡從NuGet包中使用單個引用程序集,而不是每個接收項目的Debug或Release配置中的不同引用程序集。
我想從NuGet包中獲取的引用程序集根據配置而有所不同,這樣我就可以在nupkg中嵌入調試和發佈DLL,並讓Release C#構建綁定到發佈DLL並調試C#構建綁定到調試DLL。
這是我的一個要求,因爲它似乎是我的調試版和發佈版本之間不同的std C++類(std :: string)的本地二進制對象佈局。
該DLL的發佈編譯失敗與該程序的其餘部分的調試編譯工作。程序的DLL和發佈編譯的調試編譯也遇到類似的失敗。
我能在這裏做什麼嗎?我已經做了一些探索,將參考元素放在NuGet .props或.targets文件中,並使用$(Configuration)屬性,但是我還沒有完成這項工作。
幾乎沒有唯一的問題,當庫用戶擁有不同的VS版本時,會得到完全相同的匹配問題。這應該永遠不會成爲C++/CLI項目中的一個問題,您只公開受管接口。你的C++代碼看起來必須始終是一個實現細節,所以你部署Release build版本並不重要。 –