-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Application Name: NuGetPackageExplorer
OS: Windows 10 RS5
CPU: X64
.NET Build Number: 5.0.100-rc.1.20454.5
App Source on GitHub link: https://github.com/NuGetPackageExplorer/NuGetPackageExplorer (this source is new, we test old version )
(We found this bug when we are trying to upgrade the NuGetPackageExplorer app, and build with latest RC1 SDK.)
Verify Scenarios:
1). Windows 10 RS5 X64 + .NET Core SDK build 5.0.100-rc.1.20454.5: Fail
2). Windows 10 RS5 X64 + .NET Core SDK build 5.0.100-preview.8.20417.9-win-x64: Pass
Repro Machine:
See in bug: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1198579/
Repro steps:
open command prompt window.
Run "cd C:\Users\Appcompat\Documents\NuGetPackageExplorer" command, navigate to the app path.
Run "dotnet NuGetPackageExplorer.dll" to lanuch the app.
Expected Result:
Open NuGetPackageExplorer successful.
Actual Result:
Unable to lanuch NuGetPackageExplorer
Exception Log:
Unhandled exception. System.TypeLoadException: Could not load type 'System.Runtime.Versioning.MinimumOSPlatformAttribute' from assembly 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(MetadataToken caCtorToken, MetadataImport& scope, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, ListBuilder`1& derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctorWithParameters, Boolean& isVarArg)
at System.Reflection.CustomAttribute.AddCustomAttributes(ListBuilder`1& attributes, RuntimeModule decoratedModule, Int32 decoratedMetadataToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, ListBuilder`1 derivedAttributes)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType)
at System.Reflection.RuntimeAssembly.GetCustomAttributes(Type attributeType, Boolean inherit)
at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit)
at System.Reflection.CustomAttributeExtensions.GetCustomAttributes[T](Assembly element)
at NuGetPe.Utility.AppVersionTelemetryInitializer..ctor() in C:\Users\Appcompat\Downloads\NuGetPackageExplorer-5.8.2\NuGetPackageExplorer-5.8.2\Core\Utility\AppVersionTelemetryInitializer.cs:line 19
at NuGetPe.DiagnosticsClient.Initialize() in C:\Users\Appcompat\Downloads\NuGetPackageExplorer-5.8.2\NuGetPackageExplorer-5.8.2\Core\Utility\DiagnosticsClient.cs:line 17
at PackageExplorer.App..ctor() in C:\Users\Appcompat\Downloads\NuGetPackageExplorer-5.8.2\NuGetPackageExplorer-5.8.2\PackageExplorer\App.xaml.cs:line 30
at PackageExplorer.App.Main()
Findings :
We search the this change on Github and found this class name is changed from MinimumOSPlatformAttribute to SupportedOSPlatformAttribute:
#12775
We also created a simple reproduce project:
https://github.com/jiangzeng01/MinimumOSPlatformAttributeExceptionSample.git
MinimumOSPlatformAttribute OSPlatform = new MinimumOSPlatformAttribute("win-x64");
Console.WriteLine(OSPlatform.PlatformName);
Console.WriteLine("Hello World!");
When we set sdk version as "5.0.100-preview.8.20417.9" in global.json file, the project can be built and run successful:
{
"sdk": {
"version": "5.0.100-preview.8.20417.9"
}
}
If we change the sdk version to "5.0.100-rc.1.20454.5", we will get exception when building the app.
{
"sdk": {
"version": "5.0.100-rc.1.20454.5"
}
}
Exception from the sample code above :
C:\Users\Appcompat\source\repos\MinimumOSPlatformAttributeExceptionSample\MinimumOSPlatformAttributeExceptionSample\Program.cs(10,13): error CS0246: The type or namespace name 'MinimumOSPlatformAttribute' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\Appcompat\source\repos\MinimumOSPlatformAttributeExceptionSample\MinimumOSPlatformAttributeExceptionSample\MinimumOSPlatformAttributeExceptionSample.csproj]
C:\Users\Appcompat\source\repos\MinimumOSPlatformAttributeExceptionSample\MinimumOSPlatformAttributeExceptionSample\Program.cs(10,57): error CS0246: The type or namespace name 'MinimumOSPlatformAttribute' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\Appcompat\source\repos\MinimumOSPlatformAttributeExceptionSample\MinimumOSPlatformAttributeExceptionSample\MinimumOSPlatformAttributeExceptionSample.csproj]