72 lines
3.6 KiB
XML
72 lines
3.6 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<OutputType>WinExe</OutputType>
|
|
<TargetFrameworks>net10.0</TargetFrameworks>
|
|
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">net10.0-windows10.0.19041.0</TargetFrameworks>
|
|
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('linux'))">net10.0</TargetFrameworks>
|
|
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('osx'))">net10.0</TargetFrameworks>
|
|
<Nullable>enable</Nullable>
|
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
|
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
|
|
<TodoWebDir>$([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)/../Hua.Todo.Web'))</TodoWebDir>
|
|
<TodoWebDistDir>$(TodoWebDir)\dist</TodoWebDistDir>
|
|
<SkipWebBuild>false</SkipWebBuild>
|
|
<ForceWebBuild>false</ForceWebBuild>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<Folder Include="Models\" />
|
|
<AvaloniaResource Include="icon.ico" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="Avalonia" Version="11.3.13" />
|
|
<PackageReference Include="Avalonia.Desktop" Version="11.3.13" />
|
|
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.13" />
|
|
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.13" />
|
|
<PackageReference Include="WebView.Avalonia" Version="11.0.0.1" />
|
|
<PackageReference Include="WebView.Avalonia.Desktop" Version="11.0.0.1" />
|
|
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
|
<PackageReference Include="Avalonia.Diagnostics" Version="11.3.13">
|
|
<IncludeAssets Condition="'$(Configuration)' != 'Debug'">None</IncludeAssets>
|
|
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.2" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Content Include="appsettings.json">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="icon.ico">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
|
</Content>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\Hua.Todo.Application\Hua.Todo.Application.csproj" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<FrameworkReference Include="Microsoft.AspNetCore.App" />
|
|
</ItemGroup>
|
|
|
|
<Target Name="BuildTodoWeb" BeforeTargets="BeforeBuild" Condition="'$(SkipWebBuild)' != 'true' And Exists('$(TodoWebDir)') And ('$(ForceWebBuild)' == 'true' Or !Exists('$(TodoWebDistDir)\index.html'))">
|
|
<Exec Command="npm ci" WorkingDirectory="$(TodoWebDir)" Condition="Exists('$(TodoWebDir)\package-lock.json') And !Exists('$(TodoWebDir)\node_modules')" />
|
|
<Exec Command="npm install" WorkingDirectory="$(TodoWebDir)" Condition="!Exists('$(TodoWebDir)\package-lock.json') And !Exists('$(TodoWebDir)\node_modules')" />
|
|
<Exec Command="npm run build" WorkingDirectory="$(TodoWebDir)" />
|
|
</Target>
|
|
|
|
<Target Name="CopyTodoWebDistToWwwroot" BeforeTargets="Build" DependsOnTargets="BuildTodoWeb" Condition="Exists('$(TodoWebDistDir)')">
|
|
<ItemGroup>
|
|
<_TodoWebDistFiles Include="$(TodoWebDistDir)\**\*" />
|
|
</ItemGroup>
|
|
|
|
<RemoveDir Directories="$(TargetDir)wwwroot" Condition="Exists('$(TargetDir)wwwroot')" />
|
|
<MakeDir Directories="$(TargetDir)wwwroot" />
|
|
|
|
<Copy SourceFiles="@(_TodoWebDistFiles)" DestinationFiles="@(_TodoWebDistFiles->'$(TargetDir)wwwroot\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
|
|
</Target>
|
|
</Project>
|