私は、MonoDevelop(* nixを含む)とVisualStudioの両方での開発を許可しようとしているオープンソースプロジェクトを持っています。最近発見した要件の1つは、出力されたファイルを1つのディレクトリから別のディレクトリ(相対パス)にコピーする必要があることです。
ただし、Windowsにはcopy
コマンドがあり、*nixにはcp
コマンドがあります。これを両方のプラットフォームで機能させ、このコマンドの違いを解決するための最良の方法は何ですか?
私は、MonoDevelop(* nixを含む)とVisualStudioの両方での開発を許可しようとしているオープンソースプロジェクトを持っています。最近発見した要件の1つは、出力されたファイルを1つのディレクトリから別のディレクトリ(相対パス)にコピーする必要があることです。
ただし、Windowsにはcopy
コマンドがあり、*nixにはcp
コマンドがあります。これを両方のプラットフォームで機能させ、このコマンドの違いを解決するための最良の方法は何ですか?
この$OS
変数を使用して、環境に応じて異なるビルド後のイベントを発生させることができます。これを行うには、次のように csproj を手動で編集する必要があります。
<PostBuildEvent Condition="'$(OS)' == 'Windows_NT' ">
dir
</PostBuildEvent>
<PostBuildEvent Condition="'$(OS)' != 'Windows_NT'">
ls
</PostBuildEvent>
Python などの言語でビルド後のスクリプトを作成できます。または、CygWin をインストールするオプションとして、他の開発者に GnuWin32 CoreUtils をインストールするように要求することもできます。CoreUtils には cp が含まれています。その後、無条件に cp を使用できます。