EmbedUntrackedSources causes WPF project build to fail when obj folder is redirected
AArnott opened this issue · comments
- Create new WPF application in Visual Studio 2019 (.NET Core is what I chose)
- Create a git repo around the solution.
- In the solution directory, drop a Directory.Build.props file with this content to redirect the
obj
directory to a solution level (for a read only source tree):
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BaseIntermediateOutputPath>$(MSBuildThisDirectory)\obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
</PropertyGroup>
</Project>
The build succeeds. Now add these elements to the Directory.Build.props
file:
<PropertyGroup>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta2-19554-01" PrivateAssets="All" />
</ItemGroup>
Then build again.
The build will fail:
1>------ Rebuild All started: Project: WpfApp3, Configuration: Debug Any CPU ------
1>D:\obj\WpfApp3\Debug\netcoreapp3.0\MainWindow.g.cs(58,21,58,38): error CS1504: Source file 'MainWindow.xaml' could not be opened -- Could not find file.
1>D:\obj\WpfApp3\Debug\netcoreapp3.0\App.g.cs(51,21,51,31): error CS1504: Source file 'App.xaml' could not be opened -- Could not find file.
1>Done building project "WpfApp3.csproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
This is a bug in WPF: dotnet/wpf#1718
Actually, this is still reproing for me, even when the 'fix' for dotnet/wpf#1718 is applied (by setting IncludePackageReferencesDuringMarkupCompilation=true
). And anyway, that bug seems to focus on the markup compilation, whereas in my repro the markup compilation completes successfully. It's the subsequent csc in the original project that fails.