sdk: [.NET 8 Regression] error CS1504: Source file "" could not be opened --- Could not find file
Describe the bug
A .NET project fails to build with the .NET 8 SDK but succeeds with the .NET 7 SDK. It seems to be an issue with the WPF generated source files not being able to find the original XAML file.
To Reproduce
- Have .NET 8 SDK 8.0.100-preview.6.23330.14
- Checkout https://github.com/microsoft/MIEngine/tree/main
- Run
dotnet build src\MIDebugEngine.sln
- See error logs
Errors Logs
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(49,18): error CS1504: Source file 'UI\Containe
rPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2gao
z2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(57,19): error CS1504: Source file 'UI\Containe
rPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2gao
z2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(65,19): error CS1504: Source file 'UI\Containe
rPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2gao
z2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(73,19): error CS1504: Source file 'UI\Containe
rPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2gao
z2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(81,19): error CS1504: Source file 'UI\Containe
rPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2gao
z2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(89,19): error CS1504: Source file 'UI\Containe
rPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2gao
z2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(97,19): error CS1504: Source file 'UI\Containe
rPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2gao
z2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(105,19): error CS1504: Source file 'UI\Contain
erPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2ga
oz2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(113,19): error CS1504: Source file 'UI\Contain
erPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2ga
oz2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(121,19): error CS1504: Source file 'UI\Contain
erPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2ga
oz2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(129,19): error CS1504: Source file 'UI\Contain
erPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2ga
oz2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(137,19): error CS1504: Source file 'UI\Contain
erPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2ga
oz2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(145,19): error CS1504: Source file 'UI\Contain
erPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2ga
oz2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(166,21): error CS1504: Source file 'UI\Contain
erPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2ga
oz2_wpftmp.csproj]
C:\src\MIEngine\obj\Debug\SSHDebugPS\UI\ContainerPickerDialogWindow.g.cs(246,23): error CS1504: Source file 'UI\Contain
erPickerDialogWindow.xaml' could not be opened -- Could not find file. [C:\src\MIEngine\src\SSHDebugPS\SSHDebugPS_zh2ga
oz2_wpftmp.csproj]
Note: The build works if you use a .NET 7 SDK like
dotnet "C:\Program Files\dotnet\sdk\7.0.109\dotnet.dll" build src\MIDebugEngine
Exceptions (if any)
None. This is just dotnet build
Further technical details
- Include the output of
dotnet --info
dotnet --info output
.NET SDK:
Version: 8.0.100-preview.6.23330.14
Commit: ba97796b8f
Runtime Environment:
OS Name: Windows
OS Version: 10.0.22621
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\8.0.100-preview.6.23330.14\
.NET workloads installed:
There are no installed workloads to display.
Host:
Version: 8.0.0-preview.6.23329.7
Architecture: x64
Commit: 5340be2ccc
.NET SDKs installed:
7.0.200 [C:\Program Files\dotnet\sdk]
7.0.306 [C:\Program Files\dotnet\sdk]
8.0.100-preview.3.23178.7 [C:\Program Files\dotnet\sdk]
8.0.100-preview.6.23330.14 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.19 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0-preview.3.23177.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0-preview.6.23329.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.19 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0-preview.3.23174.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0-preview.6.23329.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.19 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.0-preview.3.23178.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.0-preview.6.23329.4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Other architectures found:
x86 [C:\Program Files (x86)\dotnet]
registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
- The IDE (VS / VS Code/ VS4Mac) you’re running on, and its version VS Version does not matter as this repros with just the dotnet commandline but it reproduces with Visual Studio 17 Preview 7.
About this issue
- Original URL
- State: open
- Created a year ago
- Reactions: 3
- Comments: 39 (30 by maintainers)
Commits related to this issue
- Address .NET 8 SDK Build issues This PR addresses issues building MIEngine with .NET 8 SDK. See https://github.com/dotnet/sdk/issues/34438 — committed to microsoft/MIEngine by WardenGnaw 8 months ago
- Address .NET 8 SDK Build issues (#1425) This PR addresses issues building MIEngine with .NET 8 SDK. See https://github.com/dotnet/sdk/issues/34438 — committed to microsoft/MIEngine by WardenGnaw 7 months ago
Offline we figured out that there are two ways to get into this situation:
1.Setting
<IncludePackageReferencesDuringMarkupCompilation>false</IncludePackageReferencesDuringMarkupCompilation>
2. Having a .NET Framework-targeting projectUseWPF
and with manual XAML assembly referencesobj
/IntermediateOutputPath
https://github.com/dotnet/wpf/pull/8378 fixes the former.
sdk344838.zip is a repro of the latter.
Starting to see these in the wild as folks update to .NET 8.
Did we end up having a doc page or an aka.ms links that I can point people to?
Workarounds Available: Either of these should work, depending on the use cases.
IncludePackageReferencesDuringMarkupCompilation
to true in csprojEmbedUntrackedSources
as false in csproj.IntermediateOutputPath
Are we shipping .NET 8 with this? It’s going to basically break all WPF desktop in the world. To me it looks like an absolute shipstopper.
The problem though is that it’s desktop WPF that is broken, would it be fixed by changes to dotnet/wpf?
We don’t really want
EmbedUntrackedSources=false
for the whole project though, right? We’d ideally like it only for the$(IsWpfTempProject)
project, right? That sounds like a change that could be placed indotnet/wpf
.This is what I’m using to workaround:
Please, get it started if you don’t mind.
/cc @pchaurasia14 FYI
+1
Yes, we enabled Source Link by default in NET 8.
This is an old bug in nuget/wpf interaction: https://github.com/dotnet/wpf/issues/1718
IncludePackageReferencesDuringMarkupCompilation = true
is required for the fix to kick in. MIEngine repo sets this property to false insrc\SSHDebugPS\SSHDebugPS.csproj
which causes the build failure.I’ve investigated this and found a workaround, which is to set the
EmbedUntrackedSources
property to false.@tmat This is a regression in .NET 8 that looks like it’s related to Source Link embedding untracked files, can you take a look?
I compared a build of the project between the .NET 7 and the .NET 8 SDK. In the .NET 8 SDK where it fails, there are
EmbeddedFiles
items passed to the compiler in the inner XAML markup compilation pass 2 build, that are not present in the .NET 7 SDK:These appear to be causing, or te be related to, the error that is being generated.