Skip to content

Commit 07ae197

Browse files
authored
Use analyzers from targeting pack for NetCoreAppCurrent (dotnet#87726)
* Use analyzers from targeting pack for NetCoreAppCurrent Fixes that analyzer failures didn't show-up in dotnet#74897 Add analyzers to the frameworklist that OOB projects in src/libraries use, and only auto ProjectReference the analyzers in generators.targets when not using the analyzers from the targeting pack. Also move the generator projects related code into a separate file. Continuation of dotnet#75093 * Fix project build * Add missing reference to Regex tests * Add missing generators for netfx build * Fix paht in test project * Fix typo * Disable runtime marshalling for SharedTypes.csproj * Disable runtime marshalling for NativeExports.csproj
1 parent 903eef7 commit 07ae197

File tree

31 files changed

+102
-116
lines changed

31 files changed

+102
-116
lines changed

Directory.Build.targets

+11-20
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<Import Project="$(RepositoryEngineeringDir)liveBuilds.targets" />
1313
<Import Project="$(RepositoryEngineeringDir)generators.targets" />
1414
<Import Project="$(RepositoryEngineeringDir)python.targets" />
15+
<Import Project="$(RepositoryEngineeringDir)generatorProjects.targets" Condition="'$(IsGeneratorProject)' == 'true'" />
1516
<Import Project="$(RepositoryEngineeringDir)resolveContract.targets" Condition="'$(IsSourceProject)' == 'true'" />
1617
<Import Project="$(RepositoryEngineeringDir)packaging.targets" Condition="'$(IsPackable)' == 'true' and '$(MSBuildProjectExtension)' != '.pkgproj'" />
1718

@@ -115,26 +116,6 @@
115116
</PropertyGroup>
116117
</Target>
117118

118-
<Target Name="GetAnalyzerPackFiles"
119-
DependsOnTargets="$(GenerateNuspecDependsOn)"
120-
Returns="@(_AnalyzerPackFile)">
121-
<PropertyGroup>
122-
<_analyzerPath>analyzers/dotnet</_analyzerPath>
123-
<_analyzerPath Condition="'$(AnalyzerRoslynVersion)' != ''">$(_analyzerPath)/roslyn$(AnalyzerRoslynVersion)</_analyzerPath>
124-
<_analyzerPath Condition="'$(AnalyzerLanguage)' != ''">$(_analyzerPath)/$(AnalyzerLanguage)</_analyzerPath>
125-
</PropertyGroup>
126-
127-
<!-- Filter on netstandard2.0 so that generator projects can multi-target for the purpose of enabling nullable reference type compiler checks. -->
128-
<ItemGroup>
129-
<_AnalyzerPackFile Include="@(_BuildOutputInPackage->WithMetadataValue('TargetFramework', 'netstandard2.0'))" IsSymbol="false" />
130-
<_AnalyzerPackFile Include="@(_TargetPathsToSymbols->WithMetadataValue('TargetFramework', 'netstandard2.0'))" IsSymbol="true" />
131-
<_AnalyzerPackFile PackagePath="$(_analyzerPath)/%(TargetPath)" />
132-
</ItemGroup>
133-
134-
<Error Text="Analyzers must target netstandard2.0 since they run in the compiler which targets netstandard2.0. $(MSBuildProjectFullPath) targets '$([MSBuild]::ValueOrDefault('$(TargetFrameworks)', '$(TargetFramework)'))' instead."
135-
Condition="'@(_AnalyzerPackFile)' == ''" />
136-
</Target>
137-
138119
<!-- Allows building against source assemblies when the 'SkipUseReferenceAssembly' attribute is present on ProjectReference items. -->
139120
<Target Name="HandleReferenceAssemblyAttributeForProjectReferences"
140121
AfterTargets="ResolveProjectReferences"
@@ -197,6 +178,16 @@
197178
Exclude="@(_targetingPackIncludedReferenceWithProjectName)" />
198179
<Reference Remove="@(_targetingPackExcludedReferenceWithProjectName->Metadata('OriginalIdentity'))" />
199180
</ItemGroup>
181+
182+
<ItemGroup>
183+
<_targetingPackAnalyzerReferenceWithProjectName Include="@(Analyzer->WithMetadataValue('ExternallyResolved', 'true')->Metadata('Filename'))"
184+
OriginalIdentity="%(Identity)" />
185+
<_targetingPackIncludedAnalyzerReferenceWithProjectName Include="@(_targetingPackAnalyzerReferenceWithProjectName)"
186+
Exclude="@(_targetingPackReferenceExclusion)" />
187+
<_targetingPackExcludedAnalyzerReferenceWithProjectName Include="@(_targetingPackAnalyzerReferenceWithProjectName)"
188+
Exclude="@(_targetingPackIncludedAnalyzerReferenceWithProjectName)" />
189+
<Analyzer Remove="@(_targetingPackExcludedAnalyzerReferenceWithProjectName->Metadata('OriginalIdentity'))" />
190+
</ItemGroup>
200191
</Target>
201192

202193
<!--

docs/coding-guidelines/project-guidelines.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ All test outputs should be under
185185

186186
## gen
187187
In the gen directory any source generator related to the assembly should exist. This does not mean the source generator is only used for that assembly only that it is conceptually apart of that assembly. For example, the assembly may provide attributes or low-level types the source generator uses.
188-
To consume a source generator, simply add a `<ProjectReference Include="..." ReferenceOutputAssembly="false" OutputItemType="Analyzer" />` item to the project, usually next to the `Reference` and `ProjectReference` items.
188+
To consume a source generator that isn't provided via a targeting pack, simply add a `<ProjectReference Include="..." ReferenceOutputAssembly="false" OutputItemType="Analyzer" />` item to the project, usually next to the `Reference` and `ProjectReference` items.
189189

190190
A source generator must target `netstandard2.0` as such assemblies are loaded into the compiler's process which might run on either .NET Framework or modern .NET depending on the tooling being used (CLI vs Visual Studio). While that's true, a source project can still multi-target and include `$(NetCoreAppToolCurrent)` (which is the latest non live-built .NETCoreApp tfm that is supported by the SDK) to benefit from the ehancanced nullable reference type warnings emitted by the compiler. For an example see [System.Text.Json's roslyn4.4 source generator](/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.Roslyn4.4.csproj). While the repository's infrastructure makes sure that only the source generator's `netstandard2.0` build output is included in packages, to consume such a multi-targeting source generator via a `ProjectReference` (as described above), you need to add the `SetTargetFramework="TargetFramework=netstandard2.0"` metadata to the ProjectReference item to guarantee that the netstandard2.0 asset is chosen.
191191

eng/generatorProjects.targets

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<Project>
2+
3+
<PropertyGroup>
4+
<GeneratorProjectBaseTargetPath>analyzers/dotnet</GeneratorProjectBaseTargetPath>
5+
<GeneratorProjectBaseTargetPath Condition="'$(AnalyzerLanguage)' != ''">$(GeneratorProjectBaseTargetPath)/$(AnalyzerLanguage)</GeneratorProjectBaseTargetPath>
6+
</PropertyGroup>
7+
8+
<ItemDefinitionGroup>
9+
<TargetPathWithTargetPlatformMoniker>
10+
<GeneratorProjectBaseTargetPath>$(GeneratorProjectBaseTargetPath)</GeneratorProjectBaseTargetPath>
11+
</TargetPathWithTargetPlatformMoniker>
12+
</ItemDefinitionGroup>
13+
14+
<Target Name="GetAnalyzerPackFiles"
15+
DependsOnTargets="$(GenerateNuspecDependsOn)"
16+
Returns="@(_AnalyzerPackFile)">
17+
<PropertyGroup>
18+
<_analyzerPath>$(GeneratorProjectBaseTargetPath)</_analyzerPath>
19+
<_analyzerPath Condition="'$(AnalyzerRoslynVersion)' != ''">$(_analyzerPath)/roslyn$(AnalyzerRoslynVersion)</_analyzerPath>
20+
<_analyzerPath Condition="'$(AnalyzerLanguage)' != ''">$(_analyzerPath)/$(AnalyzerLanguage)</_analyzerPath>
21+
</PropertyGroup>
22+
23+
<!-- Filter on netstandard2.0 so that generator projects can multi-target for the purpose of enabling nullable reference type compiler checks. -->
24+
<ItemGroup>
25+
<_AnalyzerPackFile Include="@(_BuildOutputInPackage->WithMetadataValue('TargetFramework', 'netstandard2.0'))" IsSymbol="false" />
26+
<_AnalyzerPackFile Include="@(_TargetPathsToSymbols->WithMetadataValue('TargetFramework', 'netstandard2.0'))" IsSymbol="true" />
27+
<_AnalyzerPackFile PackagePath="$(_analyzerPath)/%(TargetPath)" />
28+
</ItemGroup>
29+
30+
<Error Text="Analyzers must target netstandard2.0 since they run in the compiler which targets netstandard2.0. $(MSBuildProjectFullPath) targets '$([MSBuild]::ValueOrDefault('$(TargetFrameworks)', '$(TargetFramework)'))' instead."
31+
Condition="'@(_AnalyzerPackFile)' == ''" />
32+
</Target>
33+
34+
</Project>

eng/generators.targets

+16-23
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<Project>
2+
23
<PropertyGroup>
34
<EnableLibraryImportGenerator Condition="'$(EnableLibraryImportGenerator)' == '' and
45
'$(MSBuildProjectName)' == 'System.Private.CoreLib'">true</EnableLibraryImportGenerator>
@@ -13,7 +14,7 @@
1314
<!-- If the current project is not System.Private.CoreLib, we enable the LibraryImportGenerator source generator
1415
when the project is a C# source project that:
1516
- doesn't target the latest TFM or
16-
- references everything from the targeting pack (OOB) or
17+
- doesn't reference the targeting pack (i.e. when inbox) and
1718
- references System.Private.CoreLib, or
1819
- references System.Runtime.InteropServices -->
1920
<EnabledGenerators Include="LibraryImportGenerator"
@@ -22,28 +23,26 @@
2223
'$(MSBuildProjectExtension)' == '.csproj' and
2324
(
2425
'$(TargetFrameworkMoniker)' != '$(NetCoreAppCurrentTargetFrameworkMoniker)' or
25-
'$(DisableImplicitFrameworkReferences)' != 'true' or
26-
(
27-
'@(Reference)' != '' and
28-
@(Reference->AnyHaveMetadataValue('Identity', 'System.Runtime.InteropServices'))
29-
) or
3026
(
31-
'@(ProjectReference)' != '' and
32-
@(ProjectReference->AnyHaveMetadataValue('Identity', '$(CoreLibProject)'))
27+
'$(DisableImplicitFrameworkReferences)' == 'true' and
28+
(
29+
'@(Reference->AnyHaveMetadataValue('Identity', 'System.Runtime.InteropServices'))' == 'true' or
30+
'@(ProjectReference->AnyHaveMetadataValue('Identity', '$(CoreLibProject)'))' == 'true'
31+
)
3332
)
3433
)" />
3534
<!-- We enable the ComInterfaceGenerator source generator
3635
when the project is a C# source project that:
37-
- References everything from the targeting pack (OOB) or
36+
- Doesn't reference the targeting pack (i.e. when inbox) and
3837
- references System.Runtime.InteropServices -->
3938
<EnabledGenerators Include="ComInterfaceGenerator"
4039
Condition="'$(IsSourceProject)' == 'true' and
4140
'$(MSBuildProjectExtension)' == '.csproj' and
4241
(
43-
'$(DisableImplicitFrameworkReferences)' != 'true' or
42+
'$(TargetFrameworkMoniker)' != '$(NetCoreAppCurrentTargetFrameworkMoniker)' or
4443
(
45-
'@(Reference)' != '' and
46-
@(Reference->AnyHaveMetadataValue('Identity', 'System.Runtime.InteropServices'))
44+
'$(DisableImplicitFrameworkReferences)' == 'true' and
45+
'@(Reference->AnyHaveMetadataValue('Identity', 'System.Runtime.InteropServices'))' == 'true'
4746
)
4847
)" />
4948
</ItemGroup>
@@ -61,18 +60,14 @@
6160
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices\gen\Microsoft.Interop.SourceGeneration\Microsoft.Interop.SourceGeneration.csproj"
6261
ReferenceOutputAssembly="false"
6362
OutputItemType="Analyzer" />
64-
</ItemGroup>
65-
<ItemGroup Condition="'@(EnabledGenerators)' != '' and
66-
@(EnabledGenerators->AnyHaveMetadataValue('Identity', 'LibraryImportGenerator'))">
6763
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices\gen\LibraryImportGenerator\LibraryImportGenerator.csproj"
6864
ReferenceOutputAssembly="false"
69-
OutputItemType="Analyzer" />
70-
</ItemGroup>
71-
<ItemGroup Condition="'@(EnabledGenerators)' != '' and
72-
@(EnabledGenerators->AnyHaveMetadataValue('Identity', 'ComInterfaceGenerator'))">
65+
OutputItemType="Analyzer"
66+
Condition="@(EnabledGenerators->AnyHaveMetadataValue('Identity', 'LibraryImportGenerator'))" />
7367
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices\gen\ComInterfaceGenerator\ComInterfaceGenerator.csproj"
7468
ReferenceOutputAssembly="false"
75-
OutputItemType="Analyzer" />
69+
OutputItemType="Analyzer"
70+
Condition="@(EnabledGenerators->AnyHaveMetadataValue('Identity', 'ComInterfaceGenerator'))" />
7671
</ItemGroup>
7772

7873
<Target Name="ConfigureGenerators"
@@ -87,10 +82,8 @@
8782
<PropertyGroup>
8883
<LibraryImportGenerator_UseMarshalType>true</LibraryImportGenerator_UseMarshalType>
8984
</PropertyGroup>
90-
91-
<ItemGroup Condition="'$(NetCoreAppCurrentTargetFrameworkMoniker)' == '$(TargetFrameworkMoniker)' and '$(IncludeLibraryImportGeneratorSources)' != 'false'">
92-
</ItemGroup>
9385
</Target>
9486

9587
<Import Project="$(LibrariesProjectRoot)System.Runtime.InteropServices\gen\LibraryImportGenerator\Microsoft.Interop.LibraryImportGenerator.props" />
88+
9689
</Project>

eng/targetingpacks.targets

+4-2
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,14 @@
129129
<Target Name="UpdateLocalTargetingAndRuntimePack"
130130
Condition="'$(UseLocalTargetingRuntimePack)' == 'true'"
131131
AfterTargets="ResolveFrameworkReferences">
132+
<Error Text="The shared framework must be built before the local targeting pack can be consumed."
133+
Condition="!Exists('$(MicrosoftNetCoreAppRefPackDir)data\FrameworkList.xml')" />
134+
132135
<ItemGroup>
133136
<ResolvedTargetingPack Path="$(MicrosoftNetCoreAppRefPackDir.TrimEnd('/\'))"
134137
NuGetPackageVersion="$(ProductVersion)"
135138
PackageDirectory="$(MicrosoftNetCoreAppRefPackDir.TrimEnd('/\'))"
136-
Condition="'%(ResolvedTargetingPack.RuntimeFrameworkName)' == '$(LocalFrameworkOverrideName)' and
137-
Exists('$(MicrosoftNetCoreAppRefPackDir)data\FrameworkList.xml')" />
139+
Condition="'%(ResolvedTargetingPack.RuntimeFrameworkName)' == '$(LocalFrameworkOverrideName)'" />
138140
<ResolvedRuntimePack PackageDirectory="$(MicrosoftNetCoreAppRuntimePackDir)"
139141
Condition="'$(MicrosoftNetCoreAppRuntimePackDir)' != '' and
140142
'%(ResolvedRuntimePack.FrameworkName)' == '$(LocalFrameworkOverrideName)'" />

src/libraries/Directory.Build.targets

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
</BinPlaceTargetFrameworks>
9191

9292
<!-- Source generator projects might multi-target. Make sure that only the netstandard2.0 compiled assets get binplaced. -->
93-
<BinPlaceDir Include="$(MicrosoftNetCoreAppRefPackDir)analyzers\dotnet\$(AnalyzerLanguage)"
93+
<BinPlaceDir Include="$(MicrosoftNetCoreAppRefPackDir)$(GeneratorProjectBaseTargetPath)"
9494
Condition="'$(IsNETCoreAppAnalyzer)' == 'true' and
9595
'$(TargetFramework)' == 'netstandard2.0'" />
9696

src/libraries/Microsoft.NET.WebAssembly.Webcil/src/Microsoft.NET.WebAssembly.Webcil.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
<Serviceable>true</Serviceable>
77
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
88
<CLSCompliant>false</CLSCompliant>
9+
<!-- This library can't use the live targeting / runtime pack as it builds before the shared framework (as part of a task). -->
10+
<UseLocalTargetingRuntimePack>false</UseLocalTargetingRuntimePack>
911
</PropertyGroup>
1012

1113
<ItemGroup>

src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj

-7
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,6 @@ System.Data.Odbc.OdbcTransaction</PackageDescription>
138138
Link="Common\System\Runtime\InteropServices\HandleRefMarshaller.cs" />
139139
</ItemGroup>
140140

141-
<ItemGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
142-
<ProjectReference Include="..\..\System.Text.RegularExpressions\gen\System.Text.RegularExpressions.Generator.csproj"
143-
SetTargetFramework="TargetFramework=netstandard2.0"
144-
OutputItemType="Analyzer"
145-
ReferenceOutputAssembly="false" />
146-
</ItemGroup>
147-
148141
<ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'linux' or '$(TargetPlatformIdentifier)' == 'freebsd' or '$(TargetPlatformIdentifier)' == 'illumos' or '$(TargetPlatformIdentifier)' == 'solaris'">
149142
<Compile Include="$(CommonPath)Interop\Linux\Interop.Libraries.cs"
150143
Link="Common\Interop\Linux\Interop.Libraries.cs" />

src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj

-6
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,4 @@ System.Data.OleDb.OleDbTransaction</PackageDescription>
153153
<ProjectReference Include="$(LibrariesProjectRoot)System.Diagnostics.PerformanceCounter\src\System.Diagnostics.PerformanceCounter.csproj" />
154154
</ItemGroup>
155155

156-
<ItemGroup Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">
157-
<ProjectReference Include="..\..\System.Text.RegularExpressions\gen\System.Text.RegularExpressions.Generator.csproj"
158-
SetTargetFramework="TargetFramework=netstandard2.0"
159-
OutputItemType="Analyzer"
160-
ReferenceOutputAssembly="false" />
161-
</ItemGroup>
162156
</Project>

src/libraries/System.Memory.Data/tests/System.Memory.Data.Tests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<ProjectReference Include="..\src\System.Memory.Data.csproj"/>
1313
</ItemGroup>
1414

15-
<ItemGroup>
15+
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
1616
<ProjectReference Include="..\..\System.Text.Json\gen\System.Text.Json.SourceGeneration.Roslyn4.0.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
1717
</ItemGroup>
1818

src/libraries/System.Net.Http.Json/tests/FunctionalTests/System.Net.Http.Json.Functional.Tests.csproj

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2+
23
<PropertyGroup>
34
<TargetFrameworks>$(NetCoreAppCurrent);$(NetFrameworkCurrent)</TargetFrameworks>
45
</PropertyGroup>
6+
57
<ItemGroup>
68
<Compile Include="HttpClientJsonExtensionsTests.cs" />
79
<Compile Include="HttpContentJsonExtensionsTests.cs" />
810
<Compile Include="JsonContentTests.cs" />
911
<Compile Include="TestClasses.cs" />
1012
</ItemGroup>
13+
1114
<ItemGroup Condition="'$(TargetFramework)' == '$(NetCoreAppCurrent)'">
1215
<Compile Include="JsonContentTests.netcoreapp.cs" />
1316
</ItemGroup>
17+
1418
<ItemGroup>
1519
<Compile Include="$(CommonTestPath)System\Net\Capability.Security.cs" Link="Common\System\Net\Capability.Security.cs" />
1620
<Compile Include="$(CommonTestPath)System\Net\Configuration.Certificates.cs" Link="Common\System\Net\Configuration.Certificates.cs" />
@@ -23,11 +27,14 @@
2327
<Compile Include="$(CommonTestPath)System\Security\Cryptography\PlatformSupport.cs" Link="CommonTest\System\Security\Cryptography\PlatformSupport.cs" />
2428
<Compile Include="$(CommonTestPath)System\Threading\Tasks\TaskTimeoutExtensions.cs" Link="Common\System\Threading\Tasks\TaskTimeoutExtensions.cs" />
2529
</ItemGroup>
30+
2631
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
2732
<Reference Include="System.Net.Http" />
2833
<ProjectReference Include="..\..\src\System.Net.Http.Json.csproj" />
2934
</ItemGroup>
30-
<ItemGroup>
35+
36+
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
3137
<ProjectReference Include="$(LibrariesProjectRoot)System.Text.Json\gen\System.Text.Json.SourceGeneration.Roslyn4.0.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
3238
</ItemGroup>
39+
3340
</Project>

src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.Legacy.UnitTests/System.Runtime.InteropServices.JavaScript.Legacy.Tests.csproj

-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,5 @@
3232
<WasmExtraFilesToDeploy Include="timers.mjs" />
3333
<None Include="timers.mjs" />
3434
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices.JavaScript\src\System.Runtime.InteropServices.JavaScript.csproj" SkipUseReferenceAssembly="true"/>
35-
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices.JavaScript\gen\JSImportGenerator\JSImportGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
36-
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices\gen\Microsoft.Interop.SourceGeneration\Microsoft.Interop.SourceGeneration.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
3735
</ItemGroup>
3836
</Project>

src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System.Runtime.InteropServices.JavaScript.Tests.csproj

-5
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,4 @@
2222
<WasmExtraFilesToDeploy Include="System\Runtime\InteropServices\JavaScript\JavaScriptTestHelper.mjs" />
2323
<WasmExtraFilesToDeploy Include="System\Runtime\InteropServices\JavaScript\SecondRuntimeTest.js" />
2424
</ItemGroup>
25-
<ItemGroup>
26-
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices.JavaScript\gen\JSImportGenerator\JSImportGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
27-
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices\gen\Microsoft.Interop.SourceGeneration\Microsoft.Interop.SourceGeneration.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
28-
<ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices.JavaScript\src\System.Runtime.InteropServices.JavaScript.csproj" />
29-
</ItemGroup>
3025
</Project>

0 commit comments

Comments
 (0)