-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Get ambiguous type identity error when using package 'Microsoft.CodeAnalysis.CSharp/2.0.0' in a project that targets 'netcoreapp2.0' #20861
Comments
@weshaggard @ericeil @jcouv what is the story around cc @terrajobst |
CoreFx was updated to type-forward to System.Runtime (PR dotnet/corefx#14786). |
This is because ValueTuple hasn't been added to the shared framework yet. I'm going to take care of this today. @daxian-dbw you can workaround this issue by referencing the latest System.ValueTuple package from myget (https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.ValueTuple/4.4.0-preview1-25203-01). |
@weshaggard it works fine after referencing to a recent version of
I guess once |
That's correct. |
@daxian-dbw sounds like this is resolved, I"ll close , feel free to reopen |
This change moves powershell to .NET Core 2.0. Major changes are: 1. PowerShell assemblies are now targeting `netcoreapp2.0`. We are using `microsoft.netcore.app-2.0.0-preview1-001913-00`, which is from dotnet-core build 4/4/17. We cannot target `netstandard2.0` because the packages `System.Reflection.Emit` and `System.Reflection.Emit.Lightweight`, which are needed for powershell class, cannot be referenced when targeting `netstandard2.0`. 2. Refactor code to remove most CLR stub types and extension types. 3. Update build scripts to enable CI builds. The `-cache` section is specified to depend on `appveyor.yml`, so the cache will be invalidated if `appveyor.yml` is changed. 4. Ship `netcoreapp` reference assemblies with powershell to fix the issues in `Add-Type` (#2764). By default `Add-Type` will reference all those reference assemblies when compiling C# code. If `-ReferenceAssembly` is specified, then we search reference assemblies first, then the framework runtime assemblies, and lastly the loaded assemblies (possibly a third-party one that was already loaded). 5. `dotnet publish` generates executable on Unix platforms, but doesn't set "x" permission and thus it cannot execute. Currently, the "x" permission is set in the build script, `dotnet/cli` issue [#6286](https://github.com/dotnet/cli/issues/6286) is tracking this. 6. Replace the use of some APIs with the ones that take `SecureString`. 7. osx.10.12 is required to update to `netcoreapp2.0` because `dotnet-cli` 2.0.0-preview only works on osx.10.12. 8. Add dependency to `System.ValueTuple` to work around a ambiguous type identity issue in coreclr. The issue is tracked by `dotnet/corefx` [#17797](https://github.com/dotnet/corefx/issues/17797). When moving to newer version of `netcoreapp2.0`, we need to verify if this dependency is still needed.
@weshaggard I'm not very familiar with the concept of shared framework. I looked at your PRs from early April. I saw you did some netstandard changes (both in corefx and standard repos) for ValueTuple. Were those related to the shared framework? |
I did a lot of changes you will need to be more specific. I can tell you that ValueTuple has been added to the shared framework for .NET Core. |
Cool. That addresses my question. Thanks! :-) |
I ran into this when using the package
Microsoft.CodeAnalysis.CSharp/2.0.0
(2.0.0 is the latest version I can find) in my project targetingnetcoreapp2.0
.Microsoft.CodeAnalysis.CSharp/2.0.0
depends onMicrosoft.CodeAnalysis.Common/2.0.0
which pulls inSystem.ValueTuple/4.3.0
. However, the types inSystem.ValueTuple.dll
are already exposed fromSystem.Runtime.dll
when targetingnetcoreapp2.0
, and thus using any of those types results in ambiguous type identity error:Here is a simple repro:
It looks
netcoreapp2.0
doesn't come withMicrosoft.CodeAnalysis.CSharp.dll
andMicrosoft.CodeAnalysis.dll
. How should I consume theMicrosoft.CodeAnalysis.CSharp
package then?The text was updated successfully, but these errors were encountered: