2012-10-31 20 views
10

我有一個開源項目,我試圖在MonoDevelop(包括* nix)和Visual Studio上進行開發。我最近發現的一個要求是我需要將輸出文件從一個目錄複製到另一個目錄(相對路徑)。在MonoDevelop和Visual Studio上使用生成後腳本生成項目的最佳方法是什麼?

但是,Windows具有copy命令,而* nix具有cp命令。在兩個平臺上運行並解決命令差異的最佳方式是什麼?

+0

如果你真的堅定的關於其所有一個腳本,你可能想看看進入cygwin的,它提供了「適用於Windows的Linux外觀和感覺環境。「在這裏看到更多:http://www.cygwin.com/ – nieve

+1

@nieve我已經安裝了,我只是不想強迫每個想在Windows上編譯我的項目的人安裝它 – Earlz

+0

您可以添加一種安裝腳本(如rake/make)來設置其他開發人員的環境,這將決定根據操作系統使用後編譯腳本。如果你看看如何構建MonoDevelop,你會發現他們爲不同的環境/操作系統使用不同的機制。 – nieve

回答

0

你可以使用像Python這樣的語言編寫後期構建腳本。或者您可以要求其他開發人員安裝GnuWin32 CoreUtils作爲安裝CygWin的選項。 CoreUtils包括cp。那麼你可以無條件地使用cp。

8

您可以使用$OS變量根據環境具有不同的構建後事件。要做到這一點,你必須手工編輯的csproj,如:

<PostBuildEvent Condition="'$(OS)' == 'Windows_NT' "> 
    dir 
</PostBuildEvent> 
<PostBuildEvent Condition="'$(OS)' != 'Windows_NT'"> 
    ls 
</PostBuildEvent> 
相關問題