Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

$(GraphQLCodeGenerationRoot) evaluates to empty string #6179

Closed
1 task done
chrz89 opened this issue May 22, 2023 · 7 comments · Fixed by #6693
Closed
1 task done

$(GraphQLCodeGenerationRoot) evaluates to empty string #6179

chrz89 opened this issue May 22, 2023 · 7 comments · Fixed by #6693
Assignees
Milestone

Comments

@chrz89
Copy link

chrz89 commented May 22, 2023

Is there an existing issue for this?

  • I have searched the existing issues

Product

Strawberry Shake

Describe the bug

Building the project should not take forever and should not scan the whole device for .cs files

Steps to reproduce

  1. Create a console project
  2. Add StrawberryShake.Server nuget with version >=13
  3. Run dotnet build

Relevant log output

0 ms Protobuf_Compile                           1 Aufrufe
        0 ms Protobuf_BeforeCompile                     1 Aufrufe
        0 ms _Protobuf_Compile_BeforeCsCompile          1 Aufrufe
        0 ms PrepareForRazorGenerate                    1 Aufrufe
        0 ms _GenerateRazorAssemblyInfo                 1 Aufrufe
        0 ms Protobuf_AfterCompile                      1 Aufrufe
        0 ms PrepareForRazorComponentGenerate           1 Aufrufe
        0 ms ValidateProjects                           2 Aufrufe
        0 ms BeforeResGen                               6 Aufrufe
        0 ms _ChooseAppHost                             1 Aufrufe
        0 ms PrepareResourceNames                       6 Aufrufe
        0 ms CreateSatelliteAssemblies                  4 Aufrufe
        0 ms PrepareResources                           6 Aufrufe
        0 ms Compile                                    4 Aufrufe
        0 ms AfterCompile                               4 Aufrufe
        0 ms AfterBuild                                 4 Aufrufe
        0 ms CreateCustomManifestResourceNames          6 Aufrufe
        0 ms _CopySourceItemsToOutputDirectory          4 Aufrufe
        0 ms InitializeSourceControlInformation         6 Aufrufe
        0 ms PrepareForRun                              4 Aufrufe
        0 ms GenerateAssemblyInfo                       6 Aufrufe
        0 ms GetTargetPath                              4 Aufrufe
        0 ms ResolvePackageDependenciesForBuild        10 Aufrufe
        0 ms GetFrameworkPaths                         10 Aufrufe
        0 ms AfterResGen                                6 Aufrufe
        0 ms GetReferenceAssemblyPaths                 10 Aufrufe
        0 ms Protobuf_PrepareCompileOptions             1 Aufrufe
        0 ms BeforeCompile                              6 Aufrufe
        0 ms AddSourceRevisionToInformationalVersion    6 Aufrufe
        0 ms _Protobuf_SanityCheck                      2 Aufrufe
        0 ms BeforeBuild                               10 Aufrufe
        0 ms GenerateMSBuildEditorConfigFile            6 Aufrufe
        0 ms gRPC_ResolvePluginFullPath                 1 Aufrufe
        0 ms _GetRestoreSettingsCurrentProject         10 Aufrufe
        0 ms PrepareProjectReferences                  10 Aufrufe
        0 ms CoreBuild                                  4 Aufrufe
        0 ms ValidateToolsVersions                      2 Aufrufe
        0 ms ResGen                                     6 Aufrufe
        0 ms _GenerateProjectRestoreGraph              10 Aufrufe
        0 ms AfterResolveReferences                     6 Aufrufe
        0 ms _Protobuf_GatherStaleFiles                 1 Aufrufe
        0 ms _GenerateRestoreProjectPathItemsCurrentProject  10 Aufrufe
        0 ms _GenerateRestoreDependencies              10 Aufrufe
        0 ms _GenerateRestoreGraphProjectEntry         10 Aufrufe
        0 ms _GenerateProjectRestoreGraphCurrentProject  10 Aufrufe
        0 ms SetWin32ManifestProperties                 6 Aufrufe
        0 ms BeforeResolveReferences                   10 Aufrufe
        0 ms _ResolveGeneratedRazorCompileInputs        1 Aufrufe
        0 ms _AddOutputPathToGlobalPropertiesToRemove  10 Aufrufe
        0 ms _gRPC_PrepareCompileOptions                1 Aufrufe
        0 ms _ResolveMvcAssemblyAttributes              1 Aufrufe
        0 ms _Protobuf_SelectFiles                      1 Aufrufe
        0 ms ExpandSDKReferences                        6 Aufrufe
        0 ms _Protobuf_GatherStaleSimple                1 Aufrufe
        0 ms _GetAppHostPaths                           1 Aufrufe
        0 ms ResolveSDKReferences                       6 Aufrufe
        0 ms _CheckForUnsupportedHostingUsage          10 Aufrufe
        0 ms _BeforeVBCSCoreCompile                     6 Aufrufe
        0 ms EnableIntermediateOutputPathMismatchWarning  10 Aufrufe
        0 ms _ReportUpgradeNetAnalyzersNuGetWarning     6 Aufrufe
        0 ms IncludeTransitiveProjectReferences        10 Aufrufe
        0 ms ResolveRazorComponentInputs                1 Aufrufe
        0 ms BuildOnlySettings                         10 Aufrufe
        0 ms CopyAdditionalFiles                        6 Aufrufe
        0 ms _DefaultMicrosoftNETPlatformLibrary       10 Aufrufe
        0 ms _ComputeNETCoreBuildOutputFiles            6 Aufrufe
        0 ms GetTargetPathWithTargetPlatformMoniker     4 Aufrufe
        0 ms _CheckAndUnsetUnsupportedPrefer32Bit      10 Aufrufe
        0 ms _RemoveComponentAnalyzer                   1 Aufrufe
        0 ms _Protobuf_CoreCompile                      1 Aufrufe
        1 ms _CoreGenerateRazorAssemblyInfo             1 Aufrufe
        1 ms _Protobuf_AugmentLanguageCompile           1 Aufrufe
        1 ms _CheckForUnsupportedCppNETCoreVersion     20 Aufrufe
        1 ms AssignRazorGenerateTargetPaths             1 Aufrufe
        1 ms ResolveLockFileAnalyzers                  10 Aufrufe
        1 ms _GenerateSatelliteAssemblyInputs           4 Aufrufe
        1 ms _GetRestoreTargetFrameworkOverride        10 Aufrufe
        1 ms AddTransitiveFrameworkReferences           8 Aufrufe
        1 ms _GetRestoreSettingsOverrides              10 Aufrufe
        1 ms ValidateCommandLineProperties             10 Aufrufe
        1 ms _CheckForUnsupportedNETCoreVersion        20 Aufrufe
        1 ms AddImplicitDefineConstants                 6 Aufrufe
        1 ms _Protobuf_EnforceInvariants                1 Aufrufe
        1 ms Protobuf_ReconcileOutputs                  1 Aufrufe
        1 ms _SetTargetFrameworkMonikerAttribute        6 Aufrufe
        1 ms _CheckForObsoleteDotNetCliToolReferences  20 Aufrufe
        1 ms ResolveRazorConfiguration                  1 Aufrufe
        1 ms _CheckForUnsupportedAppHostUsage           5 Aufrufe
        1 ms _DiscoverMvcApplicationParts               1 Aufrufe
        1 ms _GetRestoreSettingsPerFramework           10 Aufrufe
        1 ms ResolveStaticWebAssetsConfiguration        1 Aufrufe
        1 ms _Protobuf_SetProtoRoot                     1 Aufrufe
        1 ms _GetProjectJsonPath                       20 Aufrufe
        1 ms GetNativeManifest                          3 Aufrufe
        1 ms ResolveScopedCssInputs                     1 Aufrufe
        1 ms _CreateRazorAssemblyInfoInputsCacheFile    1 Aufrufe
        1 ms CoreResGen                                 6 Aufrufe
        1 ms _ResolveCssScopes                          1 Aufrufe
        1 ms CollectCentralPackageVersions             10 Aufrufe
        1 ms GenerateMSBuildEditorConfigFileShouldRun   6 Aufrufe
        1 ms _GenerateCompileInputs                     6 Aufrufe
        1 ms GetAssemblyAttributes                      6 Aufrufe
        1 ms _GetCopyToOutputDirectoryItemsFromThisProject   4 Aufrufe
        1 ms _CheckForLanguageAndFeatureCombinationSupport  20 Aufrufe
        2 ms GenerateProgramFile                        3 Aufrufe
        2 ms AssignRazorComponentTargetPaths            1 Aufrufe
        2 ms ResolveRazorGenerateInputs                 2 Aufrufe
        2 ms _ComputeSkipAnalyzers                      6 Aufrufe
        2 ms _Protobuf_GatherStaleBatched               4 Aufrufe
        2 ms GetAssemblyVersion                         6 Aufrufe
        2 ms CollectFrameworkReferences                10 Aufrufe
        2 ms _ComputeUserRuntimeAssemblies              4 Aufrufe
        3 ms _PrepareRazorSourceGenerators              1 Aufrufe
        3 ms GenerateBuildDependencyFile                4 Aufrufe
        3 ms ValidateExecutableReferences               7 Aufrufe
        3 ms SplitResourcesByCulture                    6 Aufrufe
        3 ms _CheckForCompileOutputs                   10 Aufrufe
        3 ms _GenerateRestoreProjectPathItems          10 Aufrufe
        3 ms GenerateTargetFrameworkMonikerAttribute    6 Aufrufe
        3 ms _ComputePackageReferencePublish           10 Aufrufe
        4 ms _ComputeCssScope                           1 Aufrufe
        4 ms _BlockWinMDsOnUnsupportedTFMs              6 Aufrufe
        4 ms _PopulateCommonStateForGetCopyToOutputDirectoryItems   4 Aufrufe
        4 ms ResolveLockFileCopyLocalFiles             10 Aufrufe
        5 ms _GenerateRestoreSpecs                     10 Aufrufe
        5 ms _SplitProjectReferencesByFileExistence    10 Aufrufe
        5 ms _GenerateDotnetCliToolReferenceSpecs      10 Aufrufe
        5 ms ResolveReferences                          6 Aufrufe
        5 ms GetTargetFrameworks                        6 Aufrufe
        6 ms AddGlobalAnalyzerConfigForPackage_MicrosoftCodeAnalysisNetAnalyzers   6 Aufrufe
        6 ms _LoadRestoreGraphEntryPoints               1 Aufrufe
        6 ms _GenerateRestoreProjectSpec               10 Aufrufe
        6 ms IncrementalClean                           4 Aufrufe
        6 ms AssignTargetPaths                          6 Aufrufe
        7 ms _CheckForTransitiveWindowsDesktopDependencies   8 Aufrufe
        7 ms _GetRestoreTargetFrameworksOutput         10 Aufrufe
        7 ms _CleanRecordFileWrites                     6 Aufrufe
        7 ms CoreGenerateAssemblyInfo                   6 Aufrufe
        8 ms _ResolveJsModuleInputs                     1 Aufrufe
        8 ms CollectPackageDownloads                   10 Aufrufe
        8 ms GenerateNETCompatibleDefineConstants       6 Aufrufe
        8 ms _ComputeReferenceAssemblies                4 Aufrufe
        9 ms Protobuf_ResolvePlatform                   1 Aufrufe
       10 ms ValidateSolutionConfiguration              2 Aufrufe
       10 ms _CollectTargetFrameworkForTelemetry       10 Aufrufe
       12 ms _GenerateProjectRestoreGraphPerFramework  10 Aufrufe
       13 ms GetTargetFrameworksWithPlatformForSingleTargetFramework   6 Aufrufe
       14 ms Protobuf_PrepareCompile                    1 Aufrufe
       14 ms _SetEmbeddedWin32ManifestProperties        6 Aufrufe
       14 ms _IsProjectRestoreSupported                10 Aufrufe
       17 ms ResolveLockFileReferences                 10 Aufrufe
       18 ms _CheckForInvalidConfigurationAndPlatform  10 Aufrufe
       18 ms ResolveProjectStaticWebAssets              1 Aufrufe
       19 ms AssignProjectConfiguration                10 Aufrufe
       20 ms CheckForDuplicateItems                    10 Aufrufe
       20 ms ApplyImplicitVersions                     16 Aufrufe
       21 ms CreateGeneratedAssemblyInfoInputsCacheFile   6 Aufrufe
       24 ms _GenerateCompileDependencyCache            6 Aufrufe
       25 ms _GetRestoreProjectStyle                   20 Aufrufe
       31 ms CheckForImplicitPackageReferenceOverrides  20 Aufrufe
       32 ms CollectPackageReferences                  20 Aufrufe
       35 ms _CopyFilesMarkedCopyLocal                  2 Aufrufe
       42 ms UpdateAspNetToFrameworkReference          16 Aufrufe
       43 ms _CleanGetCurrentAndPriorFileWrites        10 Aufrufe
       49 ms ResolveFrameworkReferences                 6 Aufrufe
       50 ms GenerateGlobalUsings                       4 Aufrufe
       55 ms CopyFilesToOutputDirectory                 4 Aufrufe
       56 ms GenerateMSBuildEditorConfigFileCore        6 Aufrufe
       71 ms _GetCopyToOutputDirectoryItemsFromTransitiveProjectReferences   4 Aufrufe
       71 ms ResolveTargetingPackAssets                 6 Aufrufe
       81 ms _GenerateRestoreProjectPathItemsPerFramework  10 Aufrufe
       93 ms GetCopyToOutputDirectoryItems              4 Aufrufe
      111 ms _GetAllRestoreProjectPathItems             1 Aufrufe
      115 ms ResolvePackageAssets                      10 Aufrufe
      130 ms _HandlePackageFileConflicts                6 Aufrufe
      136 ms PrepareForBuild                           10 Aufrufe
      150 ms FindReferenceAssembliesForReferences       6 Aufrufe
      173 ms _GenerateRestoreGraph                      1 Aufrufe
      224 ms Restore                                    1 Aufrufe
      338 ms ResolveAssemblyReferences                  6 Aufrufe
      346 ms ProcessFrameworkReferences                20 Aufrufe
      405 ms _GetRestoreSettings                       10 Aufrufe
      483 ms _GenerateRestoreProjectPathWalk           10 Aufrufe
      668 ms _FilterRestoreGraphProjectInputItems       1 Aufrufe
      873 ms ResolveProjectReferences                  10 Aufrufe
     3738 ms CoreCompile                                6 Aufrufe
    190235 ms Build                                      5 Aufrufe
    379456 ms GenerateGraphQLCode                        2 Aufrufe
    570388 ms _GetProjectReferenceTargetFrameworkProperties  10 Aufrufe

Additional Context?

I am using dotnet 7.0.302 on Apple Silicon M1. A coworker has the same problem on same hardware. Another coworker on Windows 10 does not encounter the problem.

MSBuild outputs also a warning MSB5029: The value "\\**\\*.cs" of the "Include" attribute in element <ItemGroup> in file ....nuget/packages/strawberryshake.server/13.1.0/build/StrawberryShake.Server.targets (23,16)" is a wildcard that results in enumerating all files on the drive, which was likely not intended.

I think the issue is on line 23 and 47 StrawberryShake.targets.
The property "$(GraphQLCodeGenerationRoot)\**\*.cs" evaluates to "\**\.cs" which result in scanning the whole root folder recursively for .cs files.

<Target
    Name="GenerateGraphQLCode"
    BeforeTargets="BeforeBuild"
    DependsOnTargets="_GenerateGraphQLCode">
    <ItemGroup>
      <Compile Include="$(GraphQLCodeGenerationRoot)\**\*.cs" />
    </ItemGroup>
  </Target>

Overwriting the property in the csproj fixes the problem
<GraphQLCodeGenerationRoot>./dump</GraphQLCodeGenerationRoot>

Version

13.1.0

@michaelstaib michaelstaib added this to the HC-13.1.1 milestone May 23, 2023
@michaelstaib michaelstaib self-assigned this May 23, 2023
@michaelstaib michaelstaib added the 🙋 good first issue Good for newcomers label Jun 1, 2023
@michaelstaib michaelstaib modified the milestones: HC-13.1.1, HC-13.2.0 Jun 1, 2023
@michaelstaib
Copy link
Member

This is now fixed with 13.2.0-preview.3

@xtmq
Copy link

xtmq commented Jun 25, 2023

The issue is still reproduced in StrawberryShake.Server 14.0.0-preview.11.3. There is no condition on GenerateGraphQLCode target and MSBuild includes wrong glob "***.cs" to the compilation.

image

@tobias-tengler
Copy link
Collaborator

tobias-tengler commented Jun 25, 2023

Did you try the latest v13.2.x? The v14 previews are over a month old and probably don't include this change.

@xtmq
Copy link

xtmq commented Jun 26, 2023

13.2.1 works fine :)

@anadale
Copy link

anadale commented Jul 11, 2023

The problem persists with 13.3.2. Still no condition in StrawberryShake.Server.targets file :-(

@tobias-tengler @michaelstaib

@michaelstaib
Copy link
Member

Feedback from other users seems to indicate that it is fixed. Maybe there is another condition that plays in your setup?

@anadale
Copy link

anadale commented Jul 11, 2023

It seems not. As soon as I remove the reference to the package problem disappears. I've also looked into the package and it's content is the same as on the screenshot above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants