OSB上のJetbrains Riderで.NETプロジェクトを構築しようとしています。このプロジェクトは通常、Windowsマシン上で実行されますが、私はOSXマシン上に構築しようとしています。これを実行するための一環として、.bat
ファイルを.sh
-fileに変換する必要がありました。このファイルはコマンドラインで実行するときに機能します。.NETビルドプロセス:ポストビルドbashスクリプト「コード1で終了」
bashスクリプト:
#!/usr/bin/env bash
ALMADIR="$PWD/Alma/Web/Views/SharedViews"
CROSSWORDDIR="$PWD/Crossword/Web/Views/SharedViews"
ARCHIVEDIR="$PWD/Archive/Web/Views/SharedViews"
ADMINDIR="$PWD/Admin/Web/Views/SharedViews"
if [ -L "$ALMADIR" ]; then
rm "$ALMADIR"
fi
ln -s "$PWD/Common/Web.Shared/Views" "$ALMADIR"
if [ -L "$CROSSWORDDIR" ]; then
rm "$CROSSWORDDIR"
fi
ln -s "$PWD/Common/Web.Shared/Views" "$CROSSWORDDIR"
if [ -L "$ARCHIVEDIR" ]; then
rm "$ARCHIVEDIR"
fi
ln -s "$PWD/Common/Web.Shared/Views" "$ARCHIVEDIR"
if [ -L "$ADMINDIR" ]; then
rm "$ADMINDIR"
fi
ln -s "$PWD/Common/Web.Shared/Views" "$ADMINDIR"
は、私は、これはいくつかの方法で改善することができます知っているが、私はそれをシンプルに保ち、物事をovercomplicateないようにしようとしています。それが使用されているプラットフォームに応じて、正しいファイルを実行しますので、
は、私はまた、.csproj
ファイルに条件を追加しました:これも正常に動作しているが、スクリプトの実行自体はで失敗
<PropertyGroup Condition="'$(OS)' == 'Unix'">
<PreBuildEvent>$(ProjectDir)\..\..\RunPrerequisites.sh</PreBuildEvent>
</PropertyGroup>
<PropertyGroup Condition="'$(OS)' == 'Windows'">
<PreBuildEvent>$(ProjectDir)\..\..\RunPrerequisites.bat</PreBuildEvent>
</PropertyGroup>
次のエラー:
Microsoft.Common.CurrentVersion.targets(1291, 5): [MSB3073] The command "MY_PATH_OBSCURED/Folder/Web/../../RunPrerequisites.sh" exited with code 1.
何か問題が起こっている可能性がありますか?それが完了したか何かを理解するためにすべてを得るために、.sh
スクリプトから何かを返す必要がありますか? .bat
-ファイルは常に正常に動作しています。
ありがとうございます!