Skip to content
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

Merged
merged 5 commits into from
Nov 13, 2017
Merged

Conversation

khyperia
Copy link
Contributor

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).

@@ -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>
Copy link
Member

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>
Copy link
Member

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.

Copy link
Member

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.

Copy link
Member

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...

Copy link
Member

@jaredpar jaredpar left a 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>
Copy link
Member

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.

-->
<RoslynDebugType Condition="'$(OfficialBuild)' == 'true'">portable</RoslynDebugType>
<RoslynDebugType Condition="'$(OfficialBuild)' != 'true'">embedded</RoslynDebugType>
<RoslynDebugType Condition="'$(OS)' != 'Windows_NT'">portable</RoslynDebugType>
Copy link
Member

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.

Copy link
Member

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)

@@ -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>
Copy link
Member

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?

Copy link
Member

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...)

Copy link
Member

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.

Copy link
Member

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

Copy link
Member

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>
Copy link
Member

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...

jaredpar and others added 3 commits November 10, 2017 09:51
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.
@khyperia
Copy link
Contributor Author

BTW - win7-x64 can be changed to just win-x64, since that is the "portable" RID for Windows.

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.

@khyperia
Copy link
Contributor Author

#22984 (comment) @jaredpar

Wait ... we still have a project.json file???? I will delete this soon.


% find . -name project.json
./src/Deployment/DeployToolsetCompiler/project.json
./src/Setup/BuildTasks/project.json
./src/Tools/Github/GitMergeBot/project.json
./src/Tools/Source/DebuggerVisualizers/project.json
./src/Tools/Source/MetadataVisualizer/project.json

💖

<RoslynPortableRuntimeIdentifiers>win7;win7-x64</RoslynPortableRuntimeIdentifiers>

<RoslynPortableRuntimeIdentifiers>win;win-x64;linux-x64;osx-x64</RoslynPortableRuntimeIdentifiers>
<RoslynDesktopRuntimeIdentifiers>win</RoslynDesktopRuntimeIdentifiers>
Copy link
Member

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>
Copy link
Member

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.

Copy link
Contributor Author

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.

@khyperia
Copy link
Contributor Author

retest windows_debug_unit64_prtest please

@khyperia khyperia merged commit b63240f into dotnet:post-dev15.5-contrib Nov 13, 2017
@khyperia khyperia deleted the rid_all branch November 14, 2017 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants