Skip to content

Commit 6e46d43

Browse files
committed
Added ilrepack
1 parent 7f4306e commit 6e46d43

File tree

4 files changed

+45
-13
lines changed

4 files changed

+45
-13
lines changed

MSBuildRazorCompiler/CompileRazorFiles.targets

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22
<Project>
33
<PropertyGroup>
44
<BuildPath Condition="'$(BuildPath)' == ''">$(MSBuildThisFileDirectory)</BuildPath>
5-
<MSBuildRazorCompilerExe>dotnet "$(BuildPath)netcoreapp3.1\MSBuildRazorCompiler.dll"</MSBuildRazorCompilerExe>
6-
<MsBuildRazorCompilerPath>$(MSBuildProjectDirectory)</MsBuildRazorCompilerPath>
7-
<MsBuildRazorCompilerRootNamespace>$(RootNamespace)</MsBuildRazorCompilerRootNamespace>
8-
<MsBuildRazorCompilerClassModifier>internal</MsBuildRazorCompilerClassModifier>
9-
10-
</PropertyGroup>
5+
<MSBuildRazorCompile Condition="'$(MSBuildRazorCompile)' == ''">true</MSBuildRazorCompile>
6+
<MsBuildRazorCompilerILRepack Condition="'$(MsBuildRazorCompilerILRepack)' == ''">true</MsBuildRazorCompilerILRepack>
7+
<MSBuildRazorCompilerExe Condition="'$(MSBuildRazorCompilerExe)' == ''">dotnet "$(BuildPath)netcoreapp3.1\MSBuildRazorCompiler.dll"</MSBuildRazorCompilerExe>
8+
<MsBuildRazorCompilerPath Condition="'$(MsBuildRazorCompilerPath)' == ''">$(MSBuildProjectDirectory)</MsBuildRazorCompilerPath>
9+
<MsBuildRazorCompilerRootNamespace Condition="'$(MsBuildRazorCompilerRootNamespace)' == ''">$(RootNamespace)</MsBuildRazorCompilerRootNamespace>
10+
<MsBuildRazorCompilerClassModifier Condition="'$(MsBuildRazorCompilerClassModifier)' == ''">internal</MsBuildRazorCompilerClassModifier>
11+
<CopyLocalLockFileAssemblies Condition="'$(MsBuildRazorCompilerILRepack)' == 'true' and '$(CopyLocalLockFileAssemblies)' == ''">true</CopyLocalLockFileAssemblies>
12+
</PropertyGroup>
1113

12-
<Target Name="CompileRazorFiles" BeforeTargets="CoreCompile">
14+
<Target Name="CompileRazorFiles" BeforeTargets="CoreCompile" Condition="'$(MSBuildRazorCompile)' == 'true'">
1315
<Exec Command="$(MSBuildRazorCompilerExe) &quot;$(MsBuildRazorCompilerPath)&quot; $(MsBuildRazorCompilerRootNamespace) $(MsBuildRazorCompilerClassModifier)" />
1416
<!-- We need to re-scan included source files in case this build has generated new ones https://stackoverflow.com/a/44829863 -->
1517
<ItemGroup>
@@ -18,10 +20,32 @@
1820
</ItemGroup>
1921
</Target>
2022

21-
<Target Name="CleanCompiledRazorFiles" BeforeTargets="CoreClean">
23+
<Target Name="CleanCompiledRazorFiles" BeforeTargets="CoreClean" Condition="'$(MSBuildRazorCompile)' == 'true'">
2224
<ItemGroup>
2325
<_CustomFilesToDelete Include="**\**\*.cshtml.cs"/>
2426
</ItemGroup>
2527
<Delete Files='@(_CustomFilesToDelete)'/>
2628
</Target>
29+
30+
<!-- https://www.phillipsj.net/posts/using-ilrepack-with-dotnet-core-sdk-and-dotnet-standard/ -->
31+
<Target Name="ILRepack" AfterTargets="Build" Condition="'$(MsBuildRazorCompilerILRepack)' == 'true'">
32+
<PropertyGroup>
33+
<WorkingDirectory>$(MSBuildProjectDirectory)\bin\$(Configuration)\$(TargetFramework)</WorkingDirectory>
34+
</PropertyGroup>
35+
<ItemGroup>
36+
<InputAssemblies Include="RazorRenderer.dll" />
37+
<InputAssemblies Include="RazorLight.dll" />
38+
</ItemGroup>
39+
<ItemGroup>
40+
<InternalizeExcludeAssemblies Include="Microsoft.AspNetCore.Html.Abstractions.dll" />
41+
</ItemGroup>
42+
<Message Text="MERGING: @(InputAssemblies->'%(Filename)') into $(OutputAssembly)" Importance="High" />
43+
<ILRepack
44+
OutputType="$(OutputType)"
45+
MainAssembly="$(AssemblyName).dll"
46+
OutputAssembly="$(AssemblyName).dll"
47+
InputAssemblies="@(InputAssemblies)"
48+
InternalizeExcludeAssemblies="@(InternalizeExcludeAssemblies)"
49+
WorkingDirectory="$(WorkingDirectory)" />
50+
</Target>
2751
</Project>

MSBuildRazorCompiler/MsBuildRazorCompiler.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
<version>1.0.0</version>
66
<authors>Robert Moore, Matt Davies, MRCollective</authors>
77
<description>MSBuild target to statically compile .cshtml files on build of your project and then provide the code to render them at runtime.</description>
8-
<!-- todo: For some reason the following isn't added automatically, and on restore it adds 1.0.0 of RazorLight for some reason -->
98
<dependencies>
109
<group targetFramework=".NETCoreApp3.1">
1110
<dependency id="RazorLight" version="2.0.0-beta7" />
11+
<dependency id="ILRepack.MSBuild.Task" version="2.0.13" privateAssets="all" />
1212
</group>
1313
</dependencies>
1414
</metadata>

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,13 @@ If you want to configure the options for the compiler you can override any of th
2828

2929
```xml
3030
<BuildPath Condition="'$(BuildPath)' == ''">$(MSBuildThisFileDirectory)</BuildPath>
31-
<MSBuildRazorCompilerExe>dotnet "$(BuildPath)netcoreapp3.1\MSBuildRazorCompiler.dll"</MSBuildRazorCompilerExe>
32-
<MsBuildRazorCompilerPath>$(MSBuildProjectDirectory)</MsBuildRazorCompilerPath>
33-
<MsBuildRazorCompilerRootNamespace>$(RootNamespace)</MsBuildRazorCompilerRootNamespace>
34-
<MsBuildRazorCompilerClassModifier>internal</MsBuildRazorCompilerClassModifier>
31+
<MSBuildRazorCompile Condition="'$(MSBuildRazorCompile)' == ''">true</MSBuildRazorCompile>
32+
<MsBuildRazorCompilerILRepack Condition="'$(MsBuildRazorCompilerILRepack)' == ''">true</MsBuildRazorCompilerILRepack>
33+
<MSBuildRazorCompilerExe Condition="'$(MSBuildRazorCompilerExe)' == ''">dotnet "$(BuildPath)netcoreapp3.1\MSBuildRazorCompiler.dll"</MSBuildRazorCompilerExe>
34+
<MsBuildRazorCompilerPath Condition="'$(MsBuildRazorCompilerPath)' == ''">$(MSBuildProjectDirectory)</MsBuildRazorCompilerPath>
35+
<MsBuildRazorCompilerRootNamespace Condition="'$(MsBuildRazorCompilerRootNamespace)' == ''">$(RootNamespace)</MsBuildRazorCompilerRootNamespace>
36+
<MsBuildRazorCompilerClassModifier Condition="'$(MsBuildRazorCompilerClassModifier)' == ''">internal</MsBuildRazorCompilerClassModifier>
37+
<CopyLocalLockFileAssemblies Condition="'$(MsBuildRazorCompilerILRepack)' == 'true' and '$(CopyLocalLockFileAssemblies)' == ''">true</CopyLocalLockFileAssemblies>
3538
```
3639

3740
## Intellisense

Test/Test.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44
<OutputType>Exe</OutputType>
55
<TargetFramework>netcoreapp3.1</TargetFramework>
66
<PreserveCompilationContext>true</PreserveCompilationContext>
7+
<RazorLangVersion>3.0</RazorLangVersion>
8+
<RazorCompileOnBuild>false</RazorCompileOnBuild>
9+
<RazorCompileOnPublish>false</RazorCompileOnPublish>
710
<BuildPath>$(MSBuildThisFileDirectory)..\MSBuildRazorCompiler\bin\$(Configuration)\</BuildPath>
811
</PropertyGroup>
912

1013
<ItemGroup>
14+
<PackageReference Include="ILRepack.MSBuild.Task" Version="2.0.13" />
1115
<PackageReference Include="razorlight" Version="2.0.0-beta7" />
1216
</ItemGroup>
1317

@@ -16,6 +20,7 @@
1620
<ProjectReference Include="..\RazorRenderer\RazorRenderer.csproj" />
1721
</ItemGroup>
1822

23+
<!-- Emulate what happens when the nuget package is installed and the target is automatically added -->
1924
<Import Project="../MSBuildRazorCompiler/CompileRazorFiles.targets" />
2025

2126
</Project>

0 commit comments

Comments
 (0)