3abfed91e1
- Aggiunto MSBuild target che genera version.json automaticamente prima di ogni build - Versione estratta dal tag git più recente (git describe --tags) - Rimosso version.json dal tracking git (file generato automaticamente) - Aggiornato .gitignore per escludere version.json - Il file viene ora rigenerato ad ogni build con versione, commit SHA, branch e timestamp corretti
89 lines
4.0 KiB
XML
89 lines
4.0 KiB
XML
<Project Sdk="Microsoft.NET.Sdk.Web">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net9.0</TargetFramework>
|
|
<Nullable>enable</Nullable>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<!-- Version is now automatically calculated by MinVer from git tags -->
|
|
<MinVerTagPrefix>v</MinVerTagPrefix>
|
|
<MinVerVerbosity>detailed</MinVerVerbosity>
|
|
|
|
<!-- Disabilita trimming per compatibilità Blazor Server -->
|
|
<PublishTrimmed>false</PublishTrimmed>
|
|
<!-- Abilita PublishSingleFile per deployment semplificato -->
|
|
<PublishSingleFile>true</PublishSingleFile>
|
|
<!-- Abilita ReadyToRun per migliori performance di avvio -->
|
|
<PublishReadyToRun>true</PublishReadyToRun>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\DataConnection\DataConnection.csproj" />
|
|
<ProjectReference Include="..\CredentialManager\CredentialManager.csproj" />
|
|
<ProjectReference Include="..\Components\Components.csproj" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="ExcelDataReader" Version="3.7.0" />
|
|
<PackageReference Include="ExcelDataReader.DataSet" Version="3.7.0" />
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.6">
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
<PrivateAssets>all</PrivateAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="9.0.6" />
|
|
<PackageReference Include="MinVer" Version="5.0.0">
|
|
<PrivateAssets>all</PrivateAssets>
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
|
</PackageReference>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Content Update="wwwroot\version.json">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
</ItemGroup>
|
|
|
|
<!-- Target per generare automaticamente version.json prima del build -->
|
|
<Target Name="GenerateVersionJson" BeforeTargets="BeforeBuild;BeforeRebuild">
|
|
<!-- Esegui git per ottenere il tag più recente e informazioni commit -->
|
|
<Exec Command="git describe --tags --abbrev=0 2>nul" ConsoleToMSBuild="true" IgnoreExitCode="true">
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="GitLatestTag" />
|
|
</Exec>
|
|
<Exec Command="git rev-parse --short HEAD" ConsoleToMSBuild="true" IgnoreExitCode="true">
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitSha" />
|
|
</Exec>
|
|
<Exec Command="git rev-parse --abbrev-ref HEAD" ConsoleToMSBuild="true" IgnoreExitCode="true">
|
|
<Output TaskParameter="ConsoleOutput" PropertyName="GitBranch" />
|
|
</Exec>
|
|
|
|
<!-- Estrai la versione dal tag (rimuovi il prefisso 'v') -->
|
|
<PropertyGroup>
|
|
<ActualVersion Condition="'$(GitLatestTag)' != '' and $(GitLatestTag.StartsWith('v'))">$(GitLatestTag.Substring(1))</ActualVersion>
|
|
<ActualVersion Condition="'$(GitLatestTag)' != '' and !$(GitLatestTag.StartsWith('v'))">$(GitLatestTag)</ActualVersion>
|
|
<ActualVersion Condition="'$(GitLatestTag)' == ''">1.0.0-dev</ActualVersion>
|
|
<ActualCommitSha Condition="'$(GitCommitSha)' != ''">$(GitCommitSha)</ActualCommitSha>
|
|
<ActualCommitSha Condition="'$(GitCommitSha)' == ''">unknown</ActualCommitSha>
|
|
<ActualBranch Condition="'$(GitBranch)' != ''">$(GitBranch)</ActualBranch>
|
|
<ActualBranch Condition="'$(GitBranch)' == ''">local</ActualBranch>
|
|
</PropertyGroup>
|
|
|
|
<!-- Genera il contenuto JSON -->
|
|
<PropertyGroup>
|
|
<FinalVersionJsonContent>
|
|
{
|
|
"version": "$(ActualVersion)",
|
|
"commitSha": "$(ActualCommitSha)",
|
|
"branch": "$(ActualBranch)",
|
|
"buildDate": "$([System.DateTime]::Now.ToString('yyyy-MM-dd HH:mm:ss'))",
|
|
"buildEnvironment": "Development"
|
|
}
|
|
</FinalVersionJsonContent>
|
|
</PropertyGroup>
|
|
|
|
<!-- Scrivi il file version.json -->
|
|
<WriteLinesToFile File="wwwroot\version.json" Lines="$(FinalVersionJsonContent)" Overwrite="true" />
|
|
|
|
<Message Text="Generated version.json with version $(ActualVersion) from git tag" Importance="high" />
|
|
</Target>
|
|
|
|
</Project>
|