-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUnityModPackager.csproj
More file actions
47 lines (40 loc) · 2.35 KB
/
UnityModPackager.csproj
File metadata and controls
47 lines (40 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<PublishAot>true</PublishAot>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
<PropertyGroup>
<!-- OS detection -->
<IsWindows Condition="'$([MSBuild]::IsOSUnixLike())' != 'true'">true</IsWindows>
<IsWindows Condition="'$(IsWindows)' == ''">false</IsWindows>
<IsUnix Condition="'$([MSBuild]::IsOSUnixLike())' == 'true'">true</IsUnix>
<IsUnix Condition="'$(IsUnix)' == ''">false</IsUnix>
<!-- Path configurations based on OS -->
<DotNetToolsDirectory Condition="$(IsUnix)">$(HOME)/.dotnet/tools</DotNetToolsDirectory>
<DotNetToolsDirectory Condition="$(IsWindows)">$(USERPROFILE)\.dotnet\tools</DotNetToolsDirectory>
<PathSeparator Condition="$(IsWindows)">\</PathSeparator>
<PathSeparator Condition="$(IsUnix)">/</PathSeparator>
</PropertyGroup>
<!-- Copy the executable to the .NET tools directory using symbolic links -->
<Target Name="CopyToDotNetTools" AfterTargets="PostBuildEvent"
Condition="'$(Configuration)' == 'Release'">
<!-- Define source and destination -->
<PropertyGroup>
<SourceExe>$(MSBuildProjectDirectory)$(PathSeparator)$(OutputPath)$(AssemblyName)$(IsWindows ? '.exe' : '')</SourceExe>
<DestExe>$(DotNetToolsDirectory)$(PathSeparator)$(AssemblyName)$(IsWindows ? '.exe' : '')</DestExe>
</PropertyGroup>
<!-- Windows implementation using symbolic link -->
<Exec Command="if exist "$(DestExe)" del "$(DestExe)" & mklink "$(DestExe)" "$(SourceExe)""
Condition="$(IsWindows)" ContinueOnError="true" />
<Exec Command="if not exist "$(DestExe)" mklink "$(DestExe)" "$(SourceExe)""
Condition="$(IsWindows)" ContinueOnError="true" />
<!-- Unix implementation using symbolic link -->
<Exec Command="rm -f "$(DestExe)" && ln -sf "$(SourceExe)" "$(DestExe)""
Condition="$(IsUnix)" />
</Target>
</Project>