You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am attempting to run BuildXL with an MsBuildResolver, pointing to exactly one csproj file (dotnet new console, unaltered), on a Mac. (The provided MsBuildHelloWorld sample won't work because it contains a vcxproj.) However, the following exception is always thrown:
critical DX0059: Catastrophic BuildXL Failure.
Build:[0.1.0-20190803.1][refs/heads/master:f23a88a5c54c8bc3b4d6c6748767e0ce0b26db83].
Exception:System.Diagnostics.ContractsLight.ContractException: Assertion failed: Invalid path ''.
at \.\Public\Src\Utilities\Utilities\AbsolutePath.cs:316
at void System.Diagnostics.ContractsLight.ContractRuntimeHelper.ReportFailure(ContractFailureKind kind, string msg, string conditionTxt, Provenance provenence)
at AbsolutePath BuildXL.Utilities.AbsolutePath.Create(PathTable table, StringSegment absolutePath) in \.\Public\Src\Utilities\Utilities\AbsolutePath.cs:line 319
at AbsolutePath BuildXL.Utilities.AbsolutePath.Create(PathTable table, string absolutePath) in \.\Public\Src\Utilities\Utilities\AbsolutePath.cs:line 297
at FileAccessManifest BuildXL.FrontEnd.MsBuild.MsBuildWorkspaceResolver.GenerateFileAccessManifest(AbsolutePath toolDirectory, AbsolutePath outputFile) in \.\Public\Src\FrontEnd\MsBuild\MsBuildWorkspaceResolver.cs:line 736
at Task<SandboxedProcessResult> BuildXL.FrontEnd.MsBuild.MsBuildWorkspaceResolver.RunMsBuildGraphBuilderAsync(AbsolutePath responseFile, IEnumerable<AbsolutePath> projectEntryPoints, AbsolutePath outputFile, IEnumerable<AbsolutePath> msBuildSearchLocations, AbsolutePath dotnetExeLocation, IBuildParameters buildParameters) in \.\Public\Src\FrontEnd\MsBuild\MsBuildWorkspaceResolver.cs:line 653
at async Task<Possible<ProjectGraphWithPredictionsResult<AbsolutePath>>> BuildXL.FrontEnd.MsBuild.MsBuildWorkspaceResolver.ComputeBuildGraphAsync(AbsolutePath responseFile, IEnumerable<AbsolutePath> projectEntryPoints, AbsolutePath outputFile, IEnumerable<AbsolutePath> msBuidSearchLocations, IEnumerable<AbsolutePath> dotnetSearchLocations, IBuildParameters buildParameters) in \.\Public\Src\FrontEnd\MsBuild\MsBuildWorkspaceResolver.cs:line 511
at async Task<Possible<ProjectGraphResult>> BuildXL.FrontEnd.MsBuild.MsBuildWorkspaceResolver.TryComputeBuildGraphAsync(IEnumerable<AbsolutePath> msBuildSearchLocations, IEnumerable<AbsolutePath> dotnetSearchLocations, IEnumerable<AbsolutePath> parsingEntryPoints, IBuildParameters buildParameters) in \.\Public\Src\FrontEnd\MsBuild\MsBuildWorkspaceResolver.cs:line 381
at async Task<Possible<ProjectGraphResult>> BuildXL.FrontEnd.MsBuild.MsBuildWorkspaceResolver.TryComputeBuildGraphIfNeededAsync() in \.\Public\Src\FrontEnd\MsBuild\MsBuildWorkspaceResolver.cs:line 300
at async ValueTask<Possible<HashSet<ModuleDescriptor>>> BuildXL.FrontEnd.MsBuild.MsBuildWorkspaceResolver.GetAllKnownModuleDescriptorsAsync() in \.\Public\Src\FrontEnd\MsBuild\MsBuildWorkspaceResolver.cs:line 186
at async Task<Possible<IReadOnlyCollection<ModuleDefinition>>> BuildXL.FrontEnd.Workspaces.WorkspaceResolverExtensionMethods.GetAllModuleDefinitionsAsync(IWorkspaceModuleResolver moduleResolver) in \.\Public\Src\FrontEnd\Sdk\Workspaces\IWorkspaceModuleResolver.cs:line 106
at async Task<Possible<HashSet<ModuleDefinition>>> BuildXL.FrontEnd.Workspaces.Core.WorkspaceProvider.GetModuleDefinitionsForAllResolversAsync() in \.\Public\Src\FrontEnd\Sdk\Workspaces\Core\WorkspaceProvider.cs:line 649
at async Task<Possible<WorkspaceDefinition>> BuildXL.FrontEnd.Workspaces.Core.WorkspaceProvider.GetWorkspaceDefinitionForAllResolversAsync() in \.\Public\Src\FrontEnd\Sdk\Workspaces\Core\WorkspaceProvider.cs:line 191
at async Task<Possible<WorkspaceDefinition>> BuildXL.FrontEnd.Core.FrontEndHostController.TryGetWorkspaceDefinitionAsync(IWorkspaceProvider workspaceProvider) in \.\Public\Src\FrontEnd\Core\FrontEndHostController.Workspace.cs:line 386
at async Task<Workspace> BuildXL.FrontEnd.Core.FrontEndHostController.BuildAndFilterWorkspaceAsync(IWorkspaceProvider workspaceProvider, FrontEndEngineAbstraction engineAbstraction, EvaluationFilter evaluationFilter) in \.\Public\Src\FrontEnd\Core\FrontEndHostController.Workspace.cs:line 153
at async Task<T> BuildXL.Utilities.Tasks.TaskUtilities.WithCancellationHandlingAsync<T>(LoggingContext loggingContext, Task<T> evaluationTask, Action<LoggingContext> errorLogEvent, T errorValue, CancellationToken cancellationToken)
at Workspace BuildXL.FrontEnd.Core.FrontEndHostController.DoPhaseBuildWorkspace(IConfiguration configuration, FrontEndEngineAbstraction engineAbstraction, EvaluationFilter evaluationFilter, QualifierId[] requestedQualifiers) in \.\Public\Src\FrontEnd\Core\FrontEndHostController.Workspace.cs:line 103
at bool BuildXL.FrontEnd.Core.FrontEndHostController.BuildXL.FrontEnd.Sdk.IFrontEndController.PopulateGraph(Task<Possible<EngineCache>> cacheTask, IPipGraph graph, FrontEndEngineAbstraction engineAbstraction, EvaluationFilter evaluationFilter, IConfiguration configuration, IStartupConfiguration startupConfiguration)+(LoggingContext nestedLoggingContext, ref WorkspaceStatistics statistics) => { } [3] in \.\Public\Src\FrontEnd\Core\FrontEndHostController.cs:line 393
at bool BuildXL.FrontEnd.Core.FrontEndHostController.ProcessPhase<TStatistics>(EnginePhases phase, IConfiguration configuration, Action<LoggingContext> startPhaseLogMessage, Action<LoggingContext, TStatistics> endPhaseLogMessage, PhaseLogicHandler<TStatistics> phaseLogicHandler) in \.\Public\Src\FrontEnd\Core\FrontEndHostController.cs:line 994
at bool BuildXL.FrontEnd.Core.FrontEndHostController.BuildXL.FrontEnd.Sdk.IFrontEndController.PopulateGraph(Task<Possible<EngineCache>> cacheTask, IPipGraph graph, FrontEndEngineAbstraction engineAbstraction, EvaluationFilter evaluationFilter, IConfiguration configuration, IStartupConfiguration startupConfiguration) in \.\Public\Src\FrontEnd\Core\FrontEndHostController.cs:line 386
at bool BuildXL.Engine.BuildXLEngine.ConstructAndEvaluateGraph(LoggingContext loggingContext, FrontEndEngineAbstraction frontEndEngineAbstration, CacheInitializationTask engineCacheTask, MountsTable mountsTable, EvaluationFilter evaluationFilter, GraphReuseResult reuseResult, out PipGraph pipGraph) in \.\Public\Src\Engine\Dll\Engine.FrontEnd.cs:line 72
at ConstructScheduleResult BuildXL.Engine.BuildXLEngine.ConstructSchedule(LoggingContext loggingContext, int maxDegreeOfParallelism, CacheInitializationTask cacheInitializationTask, JournalState journalState, EngineState engineState, out EngineSchedule engineSchedule, out RootFilter rootFilter) in \.\Public\Src\Engine\Dll\Engine.cs:line 2721
at BuildXLEngineResult BuildXL.Engine.BuildXLEngine.DoRun(LoggingContext loggingContext, EngineState engineState, bool disposeFrontEnd) in \.\Public\Src\Engine\Dll\Engine.cs:line 1730
at EngineState BuildXL.BuildXLApp.RunEngine(EngineContext engineContext, FrontEndControllerFactory factory, TrackingEventListener trackingEventListener, EngineState engineState, out EngineLiveVisualizationInformation visualizationInformation) in \.\Public\Src\App\Bxl\BuildXLApp.cs:line 1942
at EngineState BuildXL.BuildXLApp.RunEngineWithDecorators(LoggingContext loggingContext, CancellationToken cancellationToken, AppLoggers appLoggers, EngineState engineState, PerformanceCollector collector, out EngineLiveVisualizationInformation visualizationInformation) in \.\Public\Src\App\Bxl\BuildXLApp.cs:line 744
at AppResult BuildXL.BuildXLApp.RunInternal(PerformanceMeasurement pm, CancellationToken cancellationToken, AppLoggers appLoggers, EngineState engineState) in \.\Public\Src\App\Bxl\BuildXLApp.cs:line 624
at AppResult BuildXL.BuildXLApp.Run(EngineState engineState)+(PerformanceMeasurement pm) => { } in \.\Public\Src\App\Bxl\BuildXLApp.cs:line 480
at AppResult BuildXL.BuildXLApp.RunWithLoggingScope(Func<PerformanceMeasurement, AppResult> run, Action sendFinalStatistics, Action<LoggingContext> configureLogging) in \.\Public\Src\App\Bxl\BuildXLApp.cs:line 978
at AppResult BuildXL.BuildXLApp.Run(EngineState engineState) in \.\Public\Src\App\Bxl\BuildXLApp.cs:line 425
at ExitKind BuildXL.Program.RunSingleInstance(IReadOnlyCollection<string> rawArgs, Nullable<ServerModeStatusAndPerf> serverModeStatusAndPerf) in \.\Public\Src\App\Bxl\Program.cs:line 167
at int BuildXL.Program.Run() in \.\Public\Src\App\Bxl\Program.cs:line 127
at int BuildXL.Program.Main(string[] rawArgs) in \.\Public\Src\App\Bxl\Program.cs:line 47
I have traced the issue to here. Presumably, Environment.SpecialFolder.Windows is returning an empty string (completely understandable, since Macs don't have a C:\Windows directory), which is then causing AbsolutePath.Create() to choke. This prevents the use of any MSBuild-based project with BuildXL when run on a non-Windows platform. I don't quite know enough about BuildXL's internals to be able to fix this myself. Thanks!
The text was updated successfully, but these errors were encountered:
I am attempting to run BuildXL with an
MsBuildResolver
, pointing to exactly one csproj file (dotnet new console
, unaltered), on a Mac. (The providedMsBuildHelloWorld
sample won't work because it contains a vcxproj.) However, the following exception is always thrown:I have traced the issue to here. Presumably,
Environment.SpecialFolder.Windows
is returning an empty string (completely understandable, since Macs don't have aC:\Windows
directory), which is then causingAbsolutePath.Create()
to choke. This prevents the use of any MSBuild-based project with BuildXL when run on a non-Windows platform. I don't quite know enough about BuildXL's internals to be able to fix this myself. Thanks!The text was updated successfully, but these errors were encountered: