-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Use all RIDs on all platforms #23113
Conversation
build/Targets/Settings.props
Outdated
@@ -34,8 +34,9 @@ | |||
<RoslynDiagnosticsPropsFilePath>$(NuGetPackageRoot)/microsoft.net.roslyndiagnostics/$(RoslynDiagnosticsNugetPackageVersion)/build/Microsoft.Net.RoslynDiagnostics.props</RoslynDiagnosticsPropsFilePath> | |||
<RoslynPortableTargetFrameworks>net461;netcoreapp2.0</RoslynPortableTargetFrameworks> | |||
<RoslynPortableTargetFrameworks46>net46;netcoreapp2.0</RoslynPortableTargetFrameworks46> | |||
<RoslynPortableRuntimeIdentifiers>win7;win7-x64</RoslynPortableRuntimeIdentifiers> | |||
|
|||
<RoslynPortableRuntimeIdentifiers>win7;win7-x64;linux-x64;osx-x64</RoslynPortableRuntimeIdentifiers> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 This is actually more correct, since the expectation is normally that you shouldn't have to restore per-config.
@@ -141,8 +146,6 @@ | |||
|
|||
<!-- Windows specific settings --> | |||
<PropertyGroup Condition="'$(OS)' == 'Windows_NT'"> | |||
<BaseNuGetRuntimeIdentifier>win7</BaseNuGetRuntimeIdentifier> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pretty sure this was a workaround for a bug that got fixed a long time ago, where things didn't work properly for anycpu configs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. Kill this with fire.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You might be able to kill more of this with fire as well...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pending @tmat feedback on whether we should just make the PDB story completely consistent across all OS now.
@@ -141,8 +146,6 @@ | |||
|
|||
<!-- Windows specific settings --> | |||
<PropertyGroup Condition="'$(OS)' == 'Windows_NT'"> | |||
<BaseNuGetRuntimeIdentifier>win7</BaseNuGetRuntimeIdentifier> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. Kill this with fire.
build/Targets/Settings.props
Outdated
--> | ||
<RoslynDebugType Condition="'$(OfficialBuild)' == 'true'">portable</RoslynDebugType> | ||
<RoslynDebugType Condition="'$(OfficialBuild)' != 'true'">embedded</RoslynDebugType> | ||
<RoslynDebugType Condition="'$(OS)' != 'Windows_NT'">portable</RoslynDebugType> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we revisit this logic now? I think it's possible for the Unix builds to now be completely consistent with our Windows builds here for PDBs. The logic for embedding and portable should work in both places.
CC @tmat as he's been working on this area.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree. There is no need for different settings on Windows.
In reply to: 150285679 [](ancestors = 150285679)
build/Targets/Settings.props
Outdated
@@ -34,8 +34,9 @@ | |||
<RoslynDiagnosticsPropsFilePath>$(NuGetPackageRoot)/microsoft.net.roslyndiagnostics/$(RoslynDiagnosticsNugetPackageVersion)/build/Microsoft.Net.RoslynDiagnostics.props</RoslynDiagnosticsPropsFilePath> | |||
<RoslynPortableTargetFrameworks>net461;netcoreapp2.0</RoslynPortableTargetFrameworks> | |||
<RoslynPortableTargetFrameworks46>net46;netcoreapp2.0</RoslynPortableTargetFrameworks46> | |||
<RoslynPortableRuntimeIdentifiers>win7;win7-x64</RoslynPortableRuntimeIdentifiers> | |||
|
|||
<RoslynPortableRuntimeIdentifiers>win7;win7-x64;linux-x64;osx-x64</RoslynPortableRuntimeIdentifiers> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should that be win7-x86;win7-x64;...
? It'll probably work as long as we don't have any native dependencies but would be slightly more correct I think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(yes, I recognize it's the wrong thing already, but thought I'd ask...)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is another hold over from the project.json days. I wonder if we could just make it win7 flat? But I've never been super strong an RIDs.
We could explore that in another PR though. This is def moving us forward as is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AFAIK win7 means win7-x86. /cc @weshaggard
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The win7
RID (and any RID that doesn't have an architecture) means it works for all architectures (or is architecture-agnostic). Check out https://github.com/dotnet/corefx/tree/master/pkg/Microsoft.NETCore.Platforms#runtime-ids for a really good explanation of RIDs.
BTW - win7-x64
can be changed to just win-x64
, since that is the "portable" RID for Windows.
@@ -141,8 +146,6 @@ | |||
|
|||
<!-- Windows specific settings --> | |||
<PropertyGroup Condition="'$(OS)' == 'Windows_NT'"> | |||
<BaseNuGetRuntimeIdentifier>win7</BaseNuGetRuntimeIdentifier> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You might be able to kill more of this with fire as well...
It turns out the BaseNuGetRuntimeIdentifier is still needed on two projects which are not fully converted to the new SDK. Moving the property to those specific projects. It will go away once they are converted to the new SDK.
I just pushed a commit that did this - if it Just Works, I'll keep it, but I'm not too confident in it. There are a lot of uses of win7. |
💖 |
<RoslynPortableRuntimeIdentifiers>win7;win7-x64</RoslynPortableRuntimeIdentifiers> | ||
|
||
<RoslynPortableRuntimeIdentifiers>win;win-x64;linux-x64;osx-x64</RoslynPortableRuntimeIdentifiers> | ||
<RoslynDesktopRuntimeIdentifiers>win</RoslynDesktopRuntimeIdentifiers> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice
@@ -16,7 +16,7 @@ | |||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> | |||
<ForceGenerationOfBindingRedirects>true</ForceGenerationOfBindingRedirects> | |||
|
|||
<RuntimeIdentifier Condition="'$(TargetFramework)' == 'net461' AND '$(RuntimeIdentifier)' == '' AND '$(OS)' == 'Windows_NT'">win7</RuntimeIdentifier> | |||
<RuntimeIdentifier Condition="'$(TargetFramework)' == 'net461' AND '$(RuntimeIdentifier)' == '' AND '$(OS)' == 'Windows_NT'">$(RoslynDesktopRuntimeIdentifiers)</RuntimeIdentifier> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't think we can use this property here. The $(RoslynDesktopRuntimeIdentifiers)
is used in the <RuntimeIdentifiers>
(emphasis on the plural form) position in the build files. This particular property is <RuntimeIdentifier>
(the single form). If the <RoslynDesktopRuntimeIdentifiers>
property ever switched to multi-targeting this would be invalid.
Suggest that for now we change the $(RoslynRuntimeIdentifier)
to a singular form.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason why we can't multitarget this instead? (change the prop to RuntimeIdentifiers
).
VisualStudioInteractiveComponents.csproj
is also single-targeted.
retest windows_debug_unit64_prtest please |
Ping @jaredpar - I have absolutely no idea why this was the way it is, so I figured I'd try removing it and see what happens.
Also, I don't know what
UseSharedCompilation
controls, but I figured it's the compiler server, and hey that works on linux now.Also, no idea what
BaseNuGetRuntimeIdentifier
is, but things seem to work without it (seems to be something related to the old project system).