Skip to content

Commit da367fb

Browse files
committed
Handle generator dependencies without ILRepack
1 parent ee2ced2 commit da367fb

File tree

2 files changed

+24
-25
lines changed

2 files changed

+24
-25
lines changed

NetFabric.Hyperlinq.SourceGenerator.UnitTests/NetFabric.Hyperlinq.SourceGenerator.UnitTests.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
</PropertyGroup>
1212

1313
<ItemGroup>
14+
<PackageReference Include="Ben.TypeDictionary" Version="0.1.4" />
1415
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="3.10.0" />
1516
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
1617
<PackageReference Include="NetFabric.Assertive" Version="4.0.0" />
18+
<PackageReference Include="NetFabric.CodeAnalysis" Version="4.0.2" />
1719
<PackageReference Include="xunit" Version="2.4.1" />
1820
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
1921
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

NetFabric.Hyperlinq.SourceGenerator/NetFabric.Hyperlinq.SourceGenerator.csproj

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,41 @@
22

33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
5-
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
5+
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <!-- Generates a package at build -->
6+
<IncludeBuildOutput>false</IncludeBuildOutput> <!-- Do not include the generator as a lib dependency -->
67
</PropertyGroup>
78

8-
<PropertyGroup>
9-
<RestoreAdditionalProjectSources>https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json ;$(RestoreAdditionalProjectSources)</RestoreAdditionalProjectSources>
10-
</PropertyGroup>
9+
<ItemGroup>
10+
<!-- Take a private dependency on Ben.TypeDictionary (PrivateAssets=all) Consumers of this generator will not reference it.
11+
Set GeneratePathProperty=true so we can reference the binaries via the PKGBen_TypeDictionary property -->
12+
<PackageReference Include="Ben.TypeDictionary" Version="0.1.4" PrivateAssets="all" GeneratePathProperty="true" />
13+
14+
<!-- Take a private dependency on NetFabric.CodeAnalysis (PrivateAssets=all) Consumers of this generator will not reference it.
15+
Set GeneratePathProperty=true so we can reference the binaries via the PKGNetFabric_CodeAnalysis property -->
16+
<PackageReference Include="NetFabric.CodeAnalysis" Version="4.0.2" PrivateAssets="all" GeneratePathProperty="true" />
1117

18+
<!-- Package the generator in the analyzer directory of the nuget package -->
19+
<None Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
20+
21+
<!-- Package the Ben.TypeDictionary dependency alongside the generator assembly -->
22+
<None Include="$(PKGBen_TypeDictionary)\lib\netstandard2.0\*.dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
23+
<None Include="$(PKGNetFabric_CodeAnalysis)\lib\netstandard2.0\*.dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
24+
</ItemGroup>
25+
1226
<ItemGroup>
13-
<!--<PackageReference Include="JetBrains.Build.ILRepack" Version="0.0.2" >
27+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.10.0" PrivateAssets="all" />
28+
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.2" PrivateAssets="all">
1429
<PrivateAssets>all</PrivateAssets>
1530
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
16-
</PackageReference>-->
17-
<PackageReference Include="Ben.TypeDictionary" Version="0.1.4" />
31+
</PackageReference>
1832
<PackageReference Include="IsExternalInit" Version="1.0.1">
1933
<PrivateAssets>all</PrivateAssets>
2034
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
21-
</PackageReference>
22-
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.2" PrivateAssets="all" />
23-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.10.0" />
24-
<PackageReference Include="NetFabric.CodeAnalysis" Version="4.0.2" />
35+
</PackageReference>
2536
<PackageReference Include="Nullable" Version="1.3.0">
2637
<PrivateAssets>all</PrivateAssets>
2738
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
2839
</PackageReference>
29-
<PackageReference Include="ILRepack.MSBuild.Task" Version="2.0.13">
30-
<PrivateAssets>all</PrivateAssets>
31-
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
32-
</PackageReference>
3340
</ItemGroup>
3441

35-
<Target Name="ILRepack" AfterTargets="Build">
36-
<PropertyGroup>
37-
<WorkingDirectory>$(MSBuildThisFileDirectory)bin\$(Configuration)\$(TargetFramework)</WorkingDirectory>
38-
</PropertyGroup>
39-
<ItemGroup>
40-
<InputAssemblies Include="NetFabric.CodeAnalysis.dll" />
41-
</ItemGroup>
42-
<ILRepack OutputType="$(OutputType)" MainAssembly="$(AssemblyName).dll" OutputAssembly="$(AssemblyName).dll" InputAssemblies="@(InputAssemblies)" InternalizeExcludeAssemblies="@(InternalizeExcludeAssemblies)" WorkingDirectory="$(WorkingDirectory)" />
43-
</Target>
44-
4542
</Project>

0 commit comments

Comments
 (0)