|
59 | 59 |
|
60 | 60 | <PropertyGroup> |
61 | 61 | <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles> |
| 62 | + |
| 63 | + <!-- Turn-off .NET based AssemblyInfo.cs generator, see below --> |
| 64 | + <GenerateAssemblyInfo>false</GenerateAssemblyInfo> |
62 | 65 | </PropertyGroup> |
| 66 | + |
| 67 | + <!-- https://stackoverflow.com/questions/10980249/msbuild-task-for-setting-custom-attribute-in-assemblyinfo-cs --> |
| 68 | + <!-- https://gist.github.com/KirillOsenkov/f20cb84d37a89b01db63f8aafe03f19b --> |
| 69 | + <Target Name="AddAssemblyAttributes" BeforeTargets="BeforeCompile"> |
| 70 | + <PropertyGroup> |
| 71 | + <GeneratedAssemblyInfoPath>$(IntermediateOutputPath)AssemblyInfo.g.cs</GeneratedAssemblyInfoPath> |
| 72 | + </PropertyGroup> |
| 73 | + |
| 74 | + <ItemGroup> |
| 75 | + <!-- Add our own AssemblyInfo.cs standard attributes --> |
| 76 | + <AssemblyAttributes Include="AssemblyTitle"> |
| 77 | + <_Parameter1>$(Product)</_Parameter1> |
| 78 | + </AssemblyAttributes> |
| 79 | + <AssemblyAttributes Include="AssemblyDescription"> |
| 80 | + <_Parameter1>Community Toolkit</_Parameter1> |
| 81 | + </AssemblyAttributes> |
| 82 | + <AssemblyAttributes Include="AssemblyCompany"> |
| 83 | + <_Parameter1>$(Company)</_Parameter1> |
| 84 | + </AssemblyAttributes> |
| 85 | + <AssemblyAttributes Include="AssemblyProduct"> |
| 86 | + <_Parameter1>$(Product)</_Parameter1> |
| 87 | + </AssemblyAttributes> |
| 88 | + <AssemblyAttributes Include="AssemblyCopyright"> |
| 89 | + <_Parameter1>$(Copyright)</_Parameter1> |
| 90 | + </AssemblyAttributes> |
| 91 | + <AssemblyAttributes Include="AssemblyTrademark"> |
| 92 | + <_Parameter1></_Parameter1> |
| 93 | + </AssemblyAttributes> |
| 94 | + <AssemblyAttributes Include="AssemblyCulture"> |
| 95 | + <_Parameter1></_Parameter1> |
| 96 | + </AssemblyAttributes> |
| 97 | + <AssemblyAttributes Include="AssemblyConfiguration"> |
| 98 | + <_Parameter1>$(Configuration)</_Parameter1> |
| 99 | + </AssemblyAttributes> |
| 100 | + <AssemblyAttributes Include="AssemblyVersion"> |
| 101 | + <_Parameter1>1.0.0.0</_Parameter1> |
| 102 | + </AssemblyAttributes> |
| 103 | + <AssemblyAttributes Include="AssemblyFileVersion"> |
| 104 | + <_Parameter1>1.0.0.0</_Parameter1> |
| 105 | + </AssemblyAttributes> |
| 106 | + <AssemblyAttributes Include="System.Runtime.InteropServices.ComVisible"> |
| 107 | + <_Parameter1>false</_Parameter1> |
| 108 | + <_Parameter1_TypeName>System.Boolean</_Parameter1_TypeName> |
| 109 | + </AssemblyAttributes> |
| 110 | + |
| 111 | + <!-- Add custom attributes, also see https://stackoverflow.com/questions/56835671/how-to-read-a-msbuild-property-in-a-given-project-in-runtime --> |
| 112 | + <AssemblyAttributes Include="System.Reflection.AssemblyMetadataAttribute" Condition="'$(SourceRevisionId)' != ''"> |
| 113 | + <_Parameter1>CommitHash</_Parameter1> |
| 114 | + <_Parameter2>$(SourceRevisionId)</_Parameter2> |
| 115 | + </AssemblyAttributes> |
| 116 | + <AssemblyAttributes Include="CommunityToolkit.Attributes.PackageProjectUrlAttribute" Condition="'$(PackageProjectUrl)' != ''"> |
| 117 | + <_Parameter1>$(PackageProjectUrl)</_Parameter1> |
| 118 | + </AssemblyAttributes> |
| 119 | + <Warning Text="The PackageProjectUrl property was not set." Condition="'$(PackageProjectUrl)' == ''" /> |
| 120 | + </ItemGroup> |
| 121 | + |
| 122 | + <!-- Extra attributes specific to platforms --> |
| 123 | + <ItemGroup Condition="'$(IsWinAppSdk)' == 'true'"> |
| 124 | + <AssemblyAttributes Include="System.Runtime.Versioning.TargetPlatformAttribute"> |
| 125 | + <_Parameter1>Windows10.0.19041.0</_Parameter1><!-- TODO: Grab from variable --> |
| 126 | + </AssemblyAttributes> |
| 127 | + <AssemblyAttributes Include="System.Runtime.Versioning.SupportedOSPlatformAttribute"> |
| 128 | + <_Parameter1>Windows10.0.17763.0</_Parameter1><!-- TODO: Grab from variable --> |
| 129 | + </AssemblyAttributes> |
| 130 | + </ItemGroup> |
| 131 | + |
| 132 | + <ItemGroup> |
| 133 | + <Compile Include="$(GeneratedAssemblyInfoPath)" /> |
| 134 | + </ItemGroup> |
| 135 | + |
| 136 | + <!-- Write out new auto-generated AssemblyInfo.g.cs file --> |
| 137 | + <WriteCodeFragment Language="C#" OutputFile="$(GeneratedAssemblyInfoPath)" AssemblyAttributes="@(AssemblyAttributes)" /> |
| 138 | + </Target> |
63 | 139 | </Project> |
0 commit comments