Ich versuche, ein .NET-Projekt in Jetbrains Rider unter OSX zu bauen. Das Projekt wird normalerweise auf Windows-Rechnern ausgeführt, aber ich versuche es auf meinem OSX-Rechner aufzubauen. Als Teil davon, dass dies ausgeführt werden musste, musste ich eine .bat
-Datei in eine .sh
-Datei konvertieren, die ich gemacht habe und es funktioniert, wenn es in der Befehlszeile ausgeführt wird..NET Build-Prozess: Postbuild Bash-Skript "mit Code 1 beendet"
Der Bash-Skript:
#!/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"
Ich weiß, das auf verschiedene Weise verbessert werden kann, aber ich versuche es einfach zu halten und die Dinge nicht verkomplizieren.
Ich habe auch eine Bedingung für die .csproj
Datei, so dass es die richtige Datei je nachdem, welche Plattform benutzt wird ausgeführt wird:
<PropertyGroup Condition="'$(OS)' == 'Unix'">
<PreBuildEvent>$(ProjectDir)\..\..\RunPrerequisites.sh</PreBuildEvent>
</PropertyGroup>
<PropertyGroup Condition="'$(OS)' == 'Windows'">
<PreBuildEvent>$(ProjectDir)\..\..\RunPrerequisites.bat</PreBuildEvent>
</PropertyGroup>
Dies funktioniert auch gut, aber die Ausführung des Skripts selbst nicht mit der folgende Fehlermeldung:
Microsoft.Common.CurrentVersion.targets(1291, 5): [MSB3073] The command "MY_PATH_OBSCURED/Folder/Web/../../RunPrerequisites.sh" exited with code 1.
Irgendwelche Ideen, was könnte schief gehen werden? Muss ich etwas aus dem .sh
-Skript zurückgeben, um alles zu verstehen, dass es fertig ist oder so? Die .bat
-Datei funktioniert gut, wie es immer ist.
Danke!