我使用Visual C++ for Linux Development擴展來使用Mono對C++/C#應用程序進行編碼。用於Linux擴展的Visual C++:上傳其他項目輸出
我有一個C++主項目和C#程序集項目的解決方案。
如何才能將C#項目上傳到C++輸出目錄,這樣我就可以進行調試而無需自行上傳所有內容?
謝謝。
我使用Visual C++ for Linux Development擴展來使用Mono對C++/C#應用程序進行編碼。用於Linux擴展的Visual C++:上傳其他項目輸出
我有一個C++主項目和C#程序集項目的解決方案。
如何才能將C#項目上傳到C++輸出目錄,這樣我就可以進行調試而無需自行上傳所有內容?
謝謝。
Linux擴展的CopySources MSBUILD任務複製以下項目的所有項目:Content,ClInclude,ClCompile和None項目。您還可以更多地進行自定義,甚至可以將自己的自定義項目添加到副本列表中。
因此,您只需將二進制文件作爲項目添加到項目即可。
但是要將其遠程複製到輸出目錄,它必須位於本地輸出目錄中。這聽起來就是你想要做的(C#DllImporting C/C++代碼)。
在Windows上本地將C#項目的輸出複製到C++項目輸出目錄。輸出目錄將看起來像這樣的事情:
C:\用戶\ iontodirel \文檔\ Visual Studio的 2015年\項目\ ConsoleApplication50 \ ConsoleApplication50 \ BIN \ 64 \調試
ConsoleApplication50是C++ Linux控制檯應用程序項目。這裏的目標是使目錄結構正確,這就是爲什麼要製作它的副本,而不是將其添加爲鏈接。將它複製到輸出目錄後,從C++的項目輸出目錄中將該二進制文件添加爲現有項目。您可以使用「添加 - 現有項目」對話框,或直接在項目文件中進行。你這樣做之後,它看起來像這樣在項目文件:
<None Include="bin\x64\Debug\ConsoleApplication1.exe" />
注意的項目是如何相對於項目目錄,它是在輸出目錄本地。
生成後,ConsoleApplication1.exe將被複制到〜/ projects/ConsoleApplication50/bin/x64/Debug/ConsoleApplication1.exe。
目前有一個限制,您可以控制項目目錄內的目錄結構,但不能在外面。今天,您可以通過使用遠程構建後事件(Remote Post-Build Event)來解決這一限制,它位於屬性頁面中的構建事件下,並且可以在遠程系統上執行任意命令,其中一個命令可以複製文件從遠程系統上的一個位置移動到遠程系統上的另一個位置。