Open EatonZ opened 1 year ago
@RobThree I think it would be better to file that as a separate issue because it likely has a different root cause and has to be fixed and tested separately.
@KalleOlaviNiemitalo I figured out it had to do with MySQL.Data 8.0.32 (so, yes, this is unrelated, sorry, my bad).
Has this issue been resolved? Which version of Visual Studio can I build without encountering these warnings? Thanks.
@hyke123 It has not been resolved as of the latest VS version (17.5.3). No one from MS has commented here on the issue yet - still waiting.👀
Maybe dotnet/sdk would be a better fit for this. There are some issues that sound related, for instance WindowsBase NETCoreApp vs WindowsDesktopApp Do not autoreference WindowsBase.dll in Microsoft.NetCore.App
To circumvent this error, you may try to look at project.assets.json to help identify if some dependency is bringing in old Windows base version and then update this dependency accordingly. HTH
I actually fixed this with
<UseWPF>true</UseWPF>
@dedale Thanks for the suggestion, but I do not use that file, and my project is WinForms and not WPF.
This issue still happens as of today. Hopefully something will be done for .NET 8?
@dedale Thanks for the suggestion, but I do not use that file, and my project is WinForms and not WPF.
This issue still happens as of today. Hopefully something will be done for .NET 8?
My project is WinForms too so I enabled both 🤷♂️ . Otherwise you'll see in VS in framework dependencies of your project that WindowsBase is only taken from NetCore.App (in version 4). My finding is that when you also enable UseWPF, NetCore.WindowsApp dependencies also include WindowsBase is version of your tfm i.e. 6 or 7).
@dedale Unfortunately just adding that to my csproj breaks the project:
I have the very same issue with the WindowBase Assembly resolution but with a different kind of project (Maui Blazor Hybrid App) and running on .NET 8. Also adding <UseWPF>true</UseWPF>
will totally break the project.
warning MSB3277: Es wurden Konflikte zwischen verschiedenen Versionen von "WindowsBase" gefunden, die nicht aufgelöst werden konnten.
warning MSB3277: Konflikt zwischen WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 und WindowsBase, Version=6.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
warning MSB3277: WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 wurde aufgrund der primären Eigenschaft WindowsBase, Version=6.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 vorgezogen.
warning MSB3277: Verweise, die von "WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" abhängig sind [C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.2\ref\net8.0\WindowsBase.dll].
warning MSB3277: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.2\ref\net8.0\WindowsBase.dll
warning MSB3277: Elementincludes einer Projektdatei, die den Verweis "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.2\ref\net8.0\WindowsBase.dll" verursacht haben.
warning MSB3277: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.2\ref/net8.0/WindowsBase.dll
warning MSB3277: Verweise, die von „WindowsBase, Version=6.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35“ [] abhängen oder damit vereint wurden.
warning MSB3277: C:\Users\<redacted>\.nuget\packages\emgu.cv.wpf\4.8.1.5350\lib\netcoreapp3.1\Emgu.CV.Wpf.dll
warning MSB3277: Elementincludes einer Projektdatei, die den Verweis "C:\Users\<redacted>\.nuget\packages\emgu.cv.wpf\4.8.1.5350\lib\netcoreapp3.1\Emgu.CV.Wpf.dll" verursacht haben.
warning MSB3277: C:\Users\<redacted>\.nuget\packages\emgu.cv.wpf\4.8.1.5350\lib\netcoreapp3.1\Emgu.CV.Wpf.dll
I also face this error in one of my projects. I found that when referencing an assembly that depends on WindowsBase version 6, the conflict happens. I can reproduce this in a very simple project, using both .NET 6 SDK and .NET 8 SDK.
I have no desire to enable UseWPF in this project, as this project has no UI layer.
Interestingly enough, when changing the Reference into a PackageReference, the warning is gone. Even though Visual Studio references the same full path of the dll.
In this particular situation i am not able to use a PackageReference to the file i need, i need to use an assembly reference.
Why does an assembly reference cause WindowsBase 4.0.0.0 to be included?
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-windows10.0.19041</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Reference Include="C:\Users\username\.nuget\packages\system.reactive\6.0.0\lib\net6.0-windows10.0.19041\System.Reactive.dll" />
</ItemGroup>
</Project>
Resulting in error
MSB3277 Found conflicts between different versions of "WindowsBase" that could not be resolved.
There was a conflict between "WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" and "WindowsBase, Version=6.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35".
"WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" was chosen because it was primary and "WindowsBase, Version=6.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" was not.
References which depend on "WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" [C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.29\ref\net6.0\WindowsBase.dll].
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.29\ref\net6.0\WindowsBase.dll
Project file item includes which caused reference "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.29\ref\net6.0\WindowsBase.dll".
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.29\ref/net6.0/WindowsBase.dll
References which depend on or have been unified to "WindowsBase, Version=6.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" [].
C:\Users\username\.nuget\packages\system.reactive\6.0.0\lib\net6.0-windows10.0.19041\System.Reactive.dll
Project file item includes which caused reference "C:\Users\username\.nuget\packages\system.reactive\6.0.0\lib\net6.0-windows10.0.19041\System.Reactive.dll".
C:\Users\username\.nuget\packages\system.reactive\6.0.0\lib\net6.0-windows10.0.19041\System.Reactive.dll ConsoleApp2
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets 2401
Still has this issue in .net 8.0.402 sdk.
Any progress should we know?
How to fix this? I have the same issue in .NET 8 😥 (SDK 8.0.403)
@unseensenpai @sefinek In obj/project.assets.json, what is bringing in each dependency?
@dedale
I am using only Microsoft.Web.WebView2
and Newtonsoft.Json
in my project.
I've identified that the issue is caused by Microsoft.Web.WebView2
starting from version >1.0.2792.45
. Currently, I am using an older version.
With version 1.0.2739.15, there are no issues whatsoever.
With the Windows App Packaging project, another error appears.
@sefinek well sorry, it seems project.assets.json
files are not helpful in your case to identify the source of the conflict 😒
@dedale I've identified that the issue is caused by
Microsoft.Web.WebView2
starting from version>1.0.2739.15
. Currently, I am using an older version.
This was helpful, but in my case I was able to get rid of the mass of build warnings by flipping Microsoft.Web.WebView2
from
1.0.2849.39
to
1.0.2792.45
.
@dedale Yeah, I checked that file earlier... These errors are preventing me from publishing my app to the MS Store ):
@sir-wilhelm Indeed, in 1.0.2792.45
, this issue is not present. Interesting.
Version | Warning | Error |
---|---|---|
1.0.2903.40 | ✅ | ✅ |
1.0.2849.39 | ✅ | ✅ |
1.0.2792.45 | ❌ | ✅ |
1.0.2739.15 | ❌ | ❌ |
1.0.2739.15
is the only good version that does not cause any warnings or errors.
Found conflicts between different versions of "WindowsBase" that could not be resolved.
There was a conflict between "WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" and "WindowsBase, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35".
"WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" was chosen because it was primary and "WindowsBase, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" was not.
The processor architecture of the project being built "Any CPU" is not supported by the referenced SDK "Microsoft.VCLibs.Desktop, Version=14.0". Please consider changing the targeted processor architecture of your project (in Visual Studio this can be done through the Configuration Manager) to one of the architectures supported by the SDK: "x86, x64, ARM, ARM64".
Updgrade the project
Dropping back to v1.0.2739.15 removed this warning for me also. Thanks
The latest version of Microsoft.Web.WebView2 1.0.2903.40
still produces the warning, so I'll be sticking with 1.0.2792.45
for now.
Yep, I'm wondering why this hasn't been fixed yet. With the latest version of Microsoft.Web.WebView2
installed, it's impossible to publish an MSIX package to the MS Store, as yet another error appears.
I've updated my https://github.com/dotnet/msbuild/issues/8289#issuecomment-2452637397 to highlight the versions that encounter issues with the WinAppPackagingProject
etc.
The latest version of Microsoft.Web.WebView2
1.0.2903.40
still produces the warning, so I'll be sticking with1.0.2792.45
for now.
I'm getting the same issue here on a Library that uses WebView2 and net6.0-windows
as the target framework.
I just get the warning but I'm not sure if I should push to nuget (or if it even allows me to)
@sir-wilhelm - Although there have been other reasons given, in this thread, for this conflict. Can you confirm WebView2 v1.0.2792.45 does not produce this warning/error for you? I fell back to WebView2 v1.0.2739.15, in my project, but perhaps needlessly I went back too far?
@Paul-Williams
I first noticed the build warning starting with 1.0.2849.39
, so I went back to 1.0.2792.45
to get rid of the warning. I can't say I've run into the error others have.
It should be easy for you to try 1.0.2792.45
in your project/solution and run a build to see.
Describe the bug
I am working with third-party components (DevExpress) and their new release based on .NET 6 appears to have exposed a potential bug in MSBuild's assembly resolution logic. There appears to be a versioning conflict between two WindowsBase DLLs in the WindowsDesktop and NETCore SDKs. For further details, please see this public support ticket. In particular, this reply.
The issue applies to both .NET 6 and .NET 7 WindowsDesktop projects.
To Reproduce
Here is a sample project you can build to reproduce. Just build it and look in the Visual Studio build output to see the below lines.
Exceptions (if any)
Further technical details
dotnet --info
:Runtime Environment: OS Name: Windows OS Version: 10.0.22621 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\7.0.101\
Host: Version: 7.0.1 Architecture: x64 Commit: 97203d38ba
.NET SDKs installed: 6.0.202 [C:\Program Files\dotnet\sdk] 7.0.101 [C:\Program Files\dotnet\sdk]
.NET runtimes installed: Microsoft.AspNetCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 6.0.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 6.0.10 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 6.0.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 7.0.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 7.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.WindowsDesktop.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 6.0.4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 6.0.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 7.0.1 [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