Add Package Dependency Resolution Task - #10

Merged
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps
Aug 10, 2016
Merged

Add Package Dependency Resolution Task#10
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps

Conversation

@natidea

@natideanatidea commented Aug 4, 2016

Copy link
Copy Markdown
Contributor

Task and targets for raising project.lock.json's contents to MSBuild Items, and computing references, copy locals etc. in down stream targets. This decoupling will allow these targets to be overridden by different project types.

Here are workitems for outstanding work based on feedback:

@333fred

Copy link
Copy Markdown
Member

@dotnet-bot test Windows Debug

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

namespace Microsoft.DotNet.Core.Build.Tasks

copyright on all code files. #Resolved


Refers to: src/Tasks/Microsoft.DotNet.Core.Build.Tasks/FileGroup.cs:1 in 859bc05. [](commit_id = 859bc05, deletion_comment = False)

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

<!-- General Properties -->
<PropertyGroup>
<!-- Turn off NuGet Task -->
<ResolveNuGetPackages>false</ResolveNuGetPackages>

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be done here or in https://github.com/dotnet/sdk/blob/master/src/Tasks/Microsoft.DotNet.Core.Build.Tasks/Microsoft.DotNet.Core.Sdk.props#L56-L57? I'm not certain which is better. My gut is to turn it off in the .props. That way if a user wants to turn it back on, they easily can in their .csproj. #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can experiment with props. Note that ordering is important, since this should be turned off before certain targets run. But putting in props should not affect this.


In reply to: 73918013 [](ancestors = 73918013)

@srivatsn

Copy link
Copy Markdown
Contributor

Tagging @jasonmalinowski as well.

DependsOnTargets="_ComputeLockFileReferences">
<ItemGroup>
<!-- Remove any references from ResolveNuGetPackageAssets -->
<Reference Remove="@(_ReferencesFromNuGetPackages)" />

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want this? I thought we turn ResolveNuGetPackageAssets off, so why bother? Wouldn't this just be getting in the way if some other target was trying to add these references? #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed (was a leftover artifact from testing)


In reply to: 73923197 [](ancestors = 73923197)

/// </summary>
public sealed class ResolvePackageDependencies : Task
{
private readonly Dictionary<string, string> _projectReferencesToOutputBasePaths = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if OrdinalIgnoreCase is the right thing here because Unix file systems can be case sensitive. Which means you could have 2 project references, one to "MyReference" and another to "myreference", and they would be different paths. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

<None Include="Microsoft.DotNet.Core.Sdk.props">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Microsoft.PackageDependencyResolution.targets">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be included in the NuGet package. It is really easy to add to the nuspec: https://github.com/dotnet/sdk/blob/master/build/Nuget/Microsoft.DotNet.Core.Sdk.nuspec#L38

@eerhardt

Copy link
Copy Markdown
Member

:shipit:

@eerhardt

eerhardt commented Aug 10, 2016

Copy link
Copy Markdown
Member

@natidea - FYI, I was able to add your .targets file to the Sdk.targets file in the follow commit:

https://github.com/eerhardt/core-sdk/commit/dd3e20766fe825d55cb7c3ae0d946a12e4f0858a.

Feel free to take the change. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

@eerhardt Awesome! Thanks, I'll grab that commit


In reply to: 238902943 [](ancestors = 238902943)

@natidea

Copy link
Copy Markdown
ContributorAuthor

/cc @dotnet/project-system any other comments? I will merge this in today, and make noted improvements/fixes in subsequent PRs.

@srivatsn

Copy link
Copy Markdown
Contributor

:shipit:

@natidea
natidea merged commit 9e4ae42 into dotnet:masterAug 10, 2016
nguerrera pushed a commit that referenced this pull request Oct 10, 2016
Add Package Dependency Resolution Task
mmitche pushed a commit to mmitche/sdk that referenced this pull request Jun 5, 2020
Moving the Tasks assembly to the tools folder
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 5, 2026
Changes include:
- Rename 'managed installations' to 'tracked installations' (dotnet#10)
- Fix '.metadata' -> 'metadata' folder name (dotnet#18)
- Include component type in error/warning messages (dotnet#11)
- Remove component spec from runtime update (dotnet#12)
- Remove GetInstallations wrapper (dotnet#6)
- ScopedMutex throws TimeoutException on failure (dotnet#22)
- Make InstallResult.Install non-nullable (dotnet#17)
- Remove ComponentFilesExist shortcut (dotnet#19)
- Wire up InstallSource enum (dotnet#21)
- ListCommand: enum types, narrowed mutex, read-only verify, spacing (dotnet#3,dotnet#4,dotnet#5,#1)
- Show global.json path in list output (dotnet#15)
- Add doc comments to ListData types (dotnet#7)
- Move SourceOption to CommonOptions, remove alias fields (dotnet#9)
- Remove ResolveChannelFromGlobalJson test hook wrapper (dotnet#14)
- Root 'dotnetup update' updates all components (dotnet#16)
- GlobalJsonChannelResolver: support rollForward policy (dotnet#13)
- Error when installing to unmanaged dotnet root (dotnet#20)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 6, 2026
Changes include:
- UpdateWorkflow.Execute returns non-zero exit code on failure (#1)
- InfoCommand JSON output includes InstallSpecs (dotnet#2)
- Wire --update-global-json through SdkUpdateCommand to UpdateWorkflow (dotnet#3)
- Implement DotnetInstallManager.UpdateGlobalJson using Utf8JsonReader (dotnet#3)
- Fix ResolveEntryDestPath to use normalized entry name (dotnet#4)
- Fix test: MajorMinor test uses correct channel '9.0' (dotnet#5)
- Fix test: LTS assertion checks Major instead of Minor (dotnet#6)
- Fix ScopedMutex.Dispose to not leak mutex on ReleaseMutex throw (dotnet#7)
- Make CommonOptions fields static readonly (dotnet#9)
- Remove unused --no-progress from uninstall parsers (dotnet#10)
- GarbageCollector catches Exception instead of just IOException (dotnet#11)
- Capitalize 'SDK' in SdkCommandParser description (dotnet#12)
- Eliminate redundant manifest reads in InstallerOrchestratorSingleton (dotnet#13)
- Fix STS test error message to say 'major' not 'minor' (dotnet#14)
- Make DotnetupUtilities.ExeSuffix readonly (dotnet#16)
- Fix FormatBytes to use floating-point with one decimal (dotnet#17)
- Remove dead ReleaseManifest variable in DotnetInstaller (dotnet#18)
- Make UpdateChannel.Name immutable (dotnet#19)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto 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.

4 participants

@natidea@333fred@eerhardt@srivatsn
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Add Package Dependency Resolution Task - #10

Merged
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps
Aug 10, 2016
Merged

Add Package Dependency Resolution Task#10
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps

Conversation

@natidea

@natideanatidea commented Aug 4, 2016

Copy link
Copy Markdown
Contributor

Task and targets for raising project.lock.json's contents to MSBuild Items, and computing references, copy locals etc. in down stream targets. This decoupling will allow these targets to be overridden by different project types.

Here are workitems for outstanding work based on feedback:

@333fred

Copy link
Copy Markdown
Member

@dotnet-bot test Windows Debug

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

namespace Microsoft.DotNet.Core.Build.Tasks

copyright on all code files. #Resolved


Refers to: src/Tasks/Microsoft.DotNet.Core.Build.Tasks/FileGroup.cs:1 in 859bc05. [](commit_id = 859bc05, deletion_comment = False)

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

<!-- General Properties -->
<PropertyGroup>
<!-- Turn off NuGet Task -->
<ResolveNuGetPackages>false</ResolveNuGetPackages>

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be done here or in https://github.com/dotnet/sdk/blob/master/src/Tasks/Microsoft.DotNet.Core.Build.Tasks/Microsoft.DotNet.Core.Sdk.props#L56-L57? I'm not certain which is better. My gut is to turn it off in the .props. That way if a user wants to turn it back on, they easily can in their .csproj. #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can experiment with props. Note that ordering is important, since this should be turned off before certain targets run. But putting in props should not affect this.


In reply to: 73918013 [](ancestors = 73918013)

@srivatsn

Copy link
Copy Markdown
Contributor

Tagging @jasonmalinowski as well.

DependsOnTargets="_ComputeLockFileReferences">
<ItemGroup>
<!-- Remove any references from ResolveNuGetPackageAssets -->
<Reference Remove="@(_ReferencesFromNuGetPackages)" />

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want this? I thought we turn ResolveNuGetPackageAssets off, so why bother? Wouldn't this just be getting in the way if some other target was trying to add these references? #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed (was a leftover artifact from testing)


In reply to: 73923197 [](ancestors = 73923197)

/// </summary>
public sealed class ResolvePackageDependencies : Task
{
private readonly Dictionary<string, string> _projectReferencesToOutputBasePaths = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if OrdinalIgnoreCase is the right thing here because Unix file systems can be case sensitive. Which means you could have 2 project references, one to "MyReference" and another to "myreference", and they would be different paths. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

<None Include="Microsoft.DotNet.Core.Sdk.props">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Microsoft.PackageDependencyResolution.targets">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be included in the NuGet package. It is really easy to add to the nuspec: https://github.com/dotnet/sdk/blob/master/build/Nuget/Microsoft.DotNet.Core.Sdk.nuspec#L38

@eerhardt

Copy link
Copy Markdown
Member

:shipit:

@eerhardt

eerhardt commented Aug 10, 2016

Copy link
Copy Markdown
Member

@natidea - FYI, I was able to add your .targets file to the Sdk.targets file in the follow commit:

https://github.com/eerhardt/core-sdk/commit/dd3e20766fe825d55cb7c3ae0d946a12e4f0858a.

Feel free to take the change. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

@eerhardt Awesome! Thanks, I'll grab that commit


In reply to: 238902943 [](ancestors = 238902943)

@natidea

Copy link
Copy Markdown
ContributorAuthor

/cc @dotnet/project-system any other comments? I will merge this in today, and make noted improvements/fixes in subsequent PRs.

@srivatsn

Copy link
Copy Markdown
Contributor

:shipit:

@natidea
natidea merged commit 9e4ae42 into dotnet:masterAug 10, 2016
nguerrera pushed a commit that referenced this pull request Oct 10, 2016
Add Package Dependency Resolution Task
mmitche pushed a commit to mmitche/sdk that referenced this pull request Jun 5, 2020
Moving the Tasks assembly to the tools folder
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 5, 2026
Changes include:
- Rename 'managed installations' to 'tracked installations' (dotnet#10)
- Fix '.metadata' -> 'metadata' folder name (dotnet#18)
- Include component type in error/warning messages (dotnet#11)
- Remove component spec from runtime update (dotnet#12)
- Remove GetInstallations wrapper (dotnet#6)
- ScopedMutex throws TimeoutException on failure (dotnet#22)
- Make InstallResult.Install non-nullable (dotnet#17)
- Remove ComponentFilesExist shortcut (dotnet#19)
- Wire up InstallSource enum (dotnet#21)
- ListCommand: enum types, narrowed mutex, read-only verify, spacing (dotnet#3,dotnet#4,dotnet#5,#1)
- Show global.json path in list output (dotnet#15)
- Add doc comments to ListData types (dotnet#7)
- Move SourceOption to CommonOptions, remove alias fields (dotnet#9)
- Remove ResolveChannelFromGlobalJson test hook wrapper (dotnet#14)
- Root 'dotnetup update' updates all components (dotnet#16)
- GlobalJsonChannelResolver: support rollForward policy (dotnet#13)
- Error when installing to unmanaged dotnet root (dotnet#20)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 6, 2026
Changes include:
- UpdateWorkflow.Execute returns non-zero exit code on failure (#1)
- InfoCommand JSON output includes InstallSpecs (dotnet#2)
- Wire --update-global-json through SdkUpdateCommand to UpdateWorkflow (dotnet#3)
- Implement DotnetInstallManager.UpdateGlobalJson using Utf8JsonReader (dotnet#3)
- Fix ResolveEntryDestPath to use normalized entry name (dotnet#4)
- Fix test: MajorMinor test uses correct channel '9.0' (dotnet#5)
- Fix test: LTS assertion checks Major instead of Minor (dotnet#6)
- Fix ScopedMutex.Dispose to not leak mutex on ReleaseMutex throw (dotnet#7)
- Make CommonOptions fields static readonly (dotnet#9)
- Remove unused --no-progress from uninstall parsers (dotnet#10)
- GarbageCollector catches Exception instead of just IOException (dotnet#11)
- Capitalize 'SDK' in SdkCommandParser description (dotnet#12)
- Eliminate redundant manifest reads in InstallerOrchestratorSingleton (dotnet#13)
- Fix STS test error message to say 'major' not 'minor' (dotnet#14)
- Make DotnetupUtilities.ExeSuffix readonly (dotnet#16)
- Fix FormatBytes to use floating-point with one decimal (dotnet#17)
- Remove dead ReleaseManifest variable in DotnetInstaller (dotnet#18)
- Make UpdateChannel.Name immutable (dotnet#19)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto 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.

4 participants

@natidea@333fred@eerhardt@srivatsn
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add Package Dependency Resolution Task - #10

Merged
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps
Aug 10, 2016
Merged

Add Package Dependency Resolution Task#10
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps

Conversation

@natidea

@natideanatidea commented Aug 4, 2016

Copy link
Copy Markdown
Contributor

Task and targets for raising project.lock.json's contents to MSBuild Items, and computing references, copy locals etc. in down stream targets. This decoupling will allow these targets to be overridden by different project types.

Here are workitems for outstanding work based on feedback:

@333fred

Copy link
Copy Markdown
Member

@dotnet-bot test Windows Debug

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

namespace Microsoft.DotNet.Core.Build.Tasks

copyright on all code files. #Resolved


Refers to: src/Tasks/Microsoft.DotNet.Core.Build.Tasks/FileGroup.cs:1 in 859bc05. [](commit_id = 859bc05, deletion_comment = False)

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

<!-- General Properties -->
<PropertyGroup>
<!-- Turn off NuGet Task -->
<ResolveNuGetPackages>false</ResolveNuGetPackages>

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be done here or in https://github.com/dotnet/sdk/blob/master/src/Tasks/Microsoft.DotNet.Core.Build.Tasks/Microsoft.DotNet.Core.Sdk.props#L56-L57? I'm not certain which is better. My gut is to turn it off in the .props. That way if a user wants to turn it back on, they easily can in their .csproj. #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can experiment with props. Note that ordering is important, since this should be turned off before certain targets run. But putting in props should not affect this.


In reply to: 73918013 [](ancestors = 73918013)

@srivatsn

Copy link
Copy Markdown
Contributor

Tagging @jasonmalinowski as well.

DependsOnTargets="_ComputeLockFileReferences">
<ItemGroup>
<!-- Remove any references from ResolveNuGetPackageAssets -->
<Reference Remove="@(_ReferencesFromNuGetPackages)" />

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want this? I thought we turn ResolveNuGetPackageAssets off, so why bother? Wouldn't this just be getting in the way if some other target was trying to add these references? #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed (was a leftover artifact from testing)


In reply to: 73923197 [](ancestors = 73923197)

/// </summary>
public sealed class ResolvePackageDependencies : Task
{
private readonly Dictionary<string, string> _projectReferencesToOutputBasePaths = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if OrdinalIgnoreCase is the right thing here because Unix file systems can be case sensitive. Which means you could have 2 project references, one to "MyReference" and another to "myreference", and they would be different paths. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

<None Include="Microsoft.DotNet.Core.Sdk.props">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Microsoft.PackageDependencyResolution.targets">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be included in the NuGet package. It is really easy to add to the nuspec: https://github.com/dotnet/sdk/blob/master/build/Nuget/Microsoft.DotNet.Core.Sdk.nuspec#L38

@eerhardt

Copy link
Copy Markdown
Member

:shipit:

@eerhardt

eerhardt commented Aug 10, 2016

Copy link
Copy Markdown
Member

@natidea - FYI, I was able to add your .targets file to the Sdk.targets file in the follow commit:

https://github.com/eerhardt/core-sdk/commit/dd3e20766fe825d55cb7c3ae0d946a12e4f0858a.

Feel free to take the change. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

@eerhardt Awesome! Thanks, I'll grab that commit


In reply to: 238902943 [](ancestors = 238902943)

@natidea

Copy link
Copy Markdown
ContributorAuthor

/cc @dotnet/project-system any other comments? I will merge this in today, and make noted improvements/fixes in subsequent PRs.

@srivatsn

Copy link
Copy Markdown
Contributor

:shipit:

@natidea
natidea merged commit 9e4ae42 into dotnet:masterAug 10, 2016
nguerrera pushed a commit that referenced this pull request Oct 10, 2016
Add Package Dependency Resolution Task
mmitche pushed a commit to mmitche/sdk that referenced this pull request Jun 5, 2020
Moving the Tasks assembly to the tools folder
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 5, 2026
Changes include:
- Rename 'managed installations' to 'tracked installations' (dotnet#10)
- Fix '.metadata' -> 'metadata' folder name (dotnet#18)
- Include component type in error/warning messages (dotnet#11)
- Remove component spec from runtime update (dotnet#12)
- Remove GetInstallations wrapper (dotnet#6)
- ScopedMutex throws TimeoutException on failure (dotnet#22)
- Make InstallResult.Install non-nullable (dotnet#17)
- Remove ComponentFilesExist shortcut (dotnet#19)
- Wire up InstallSource enum (dotnet#21)
- ListCommand: enum types, narrowed mutex, read-only verify, spacing (dotnet#3,dotnet#4,dotnet#5,#1)
- Show global.json path in list output (dotnet#15)
- Add doc comments to ListData types (dotnet#7)
- Move SourceOption to CommonOptions, remove alias fields (dotnet#9)
- Remove ResolveChannelFromGlobalJson test hook wrapper (dotnet#14)
- Root 'dotnetup update' updates all components (dotnet#16)
- GlobalJsonChannelResolver: support rollForward policy (dotnet#13)
- Error when installing to unmanaged dotnet root (dotnet#20)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 6, 2026
Changes include:
- UpdateWorkflow.Execute returns non-zero exit code on failure (#1)
- InfoCommand JSON output includes InstallSpecs (dotnet#2)
- Wire --update-global-json through SdkUpdateCommand to UpdateWorkflow (dotnet#3)
- Implement DotnetInstallManager.UpdateGlobalJson using Utf8JsonReader (dotnet#3)
- Fix ResolveEntryDestPath to use normalized entry name (dotnet#4)
- Fix test: MajorMinor test uses correct channel '9.0' (dotnet#5)
- Fix test: LTS assertion checks Major instead of Minor (dotnet#6)
- Fix ScopedMutex.Dispose to not leak mutex on ReleaseMutex throw (dotnet#7)
- Make CommonOptions fields static readonly (dotnet#9)
- Remove unused --no-progress from uninstall parsers (dotnet#10)
- GarbageCollector catches Exception instead of just IOException (dotnet#11)
- Capitalize 'SDK' in SdkCommandParser description (dotnet#12)
- Eliminate redundant manifest reads in InstallerOrchestratorSingleton (dotnet#13)
- Fix STS test error message to say 'major' not 'minor' (dotnet#14)
- Make DotnetupUtilities.ExeSuffix readonly (dotnet#16)
- Fix FormatBytes to use floating-point with one decimal (dotnet#17)
- Remove dead ReleaseManifest variable in DotnetInstaller (dotnet#18)
- Make UpdateChannel.Name immutable (dotnet#19)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto 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.

4 participants

@natidea@333fred@eerhardt@srivatsn
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add Package Dependency Resolution Task - #10

Merged
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps
Aug 10, 2016
Merged

Add Package Dependency Resolution Task#10
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps

Conversation

@natidea

@natideanatidea commented Aug 4, 2016

Copy link
Copy Markdown
Contributor

Task and targets for raising project.lock.json's contents to MSBuild Items, and computing references, copy locals etc. in down stream targets. This decoupling will allow these targets to be overridden by different project types.

Here are workitems for outstanding work based on feedback:

@333fred

Copy link
Copy Markdown
Member

@dotnet-bot test Windows Debug

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

namespace Microsoft.DotNet.Core.Build.Tasks

copyright on all code files. #Resolved


Refers to: src/Tasks/Microsoft.DotNet.Core.Build.Tasks/FileGroup.cs:1 in 859bc05. [](commit_id = 859bc05, deletion_comment = False)

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

<!-- General Properties -->
<PropertyGroup>
<!-- Turn off NuGet Task -->
<ResolveNuGetPackages>false</ResolveNuGetPackages>

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be done here or in https://github.com/dotnet/sdk/blob/master/src/Tasks/Microsoft.DotNet.Core.Build.Tasks/Microsoft.DotNet.Core.Sdk.props#L56-L57? I'm not certain which is better. My gut is to turn it off in the .props. That way if a user wants to turn it back on, they easily can in their .csproj. #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can experiment with props. Note that ordering is important, since this should be turned off before certain targets run. But putting in props should not affect this.


In reply to: 73918013 [](ancestors = 73918013)

@srivatsn

Copy link
Copy Markdown
Contributor

Tagging @jasonmalinowski as well.

DependsOnTargets="_ComputeLockFileReferences">
<ItemGroup>
<!-- Remove any references from ResolveNuGetPackageAssets -->
<Reference Remove="@(_ReferencesFromNuGetPackages)" />

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want this? I thought we turn ResolveNuGetPackageAssets off, so why bother? Wouldn't this just be getting in the way if some other target was trying to add these references? #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed (was a leftover artifact from testing)


In reply to: 73923197 [](ancestors = 73923197)

/// </summary>
public sealed class ResolvePackageDependencies : Task
{
private readonly Dictionary<string, string> _projectReferencesToOutputBasePaths = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if OrdinalIgnoreCase is the right thing here because Unix file systems can be case sensitive. Which means you could have 2 project references, one to "MyReference" and another to "myreference", and they would be different paths. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

<None Include="Microsoft.DotNet.Core.Sdk.props">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Microsoft.PackageDependencyResolution.targets">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be included in the NuGet package. It is really easy to add to the nuspec: https://github.com/dotnet/sdk/blob/master/build/Nuget/Microsoft.DotNet.Core.Sdk.nuspec#L38

@eerhardt

Copy link
Copy Markdown
Member

:shipit:

@eerhardt

eerhardt commented Aug 10, 2016

Copy link
Copy Markdown
Member

@natidea - FYI, I was able to add your .targets file to the Sdk.targets file in the follow commit:

https://github.com/eerhardt/core-sdk/commit/dd3e20766fe825d55cb7c3ae0d946a12e4f0858a.

Feel free to take the change. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

@eerhardt Awesome! Thanks, I'll grab that commit


In reply to: 238902943 [](ancestors = 238902943)

@natidea

Copy link
Copy Markdown
ContributorAuthor

/cc @dotnet/project-system any other comments? I will merge this in today, and make noted improvements/fixes in subsequent PRs.

@srivatsn

Copy link
Copy Markdown
Contributor

:shipit:

@natidea
natidea merged commit 9e4ae42 into dotnet:masterAug 10, 2016
nguerrera pushed a commit that referenced this pull request Oct 10, 2016
Add Package Dependency Resolution Task
mmitche pushed a commit to mmitche/sdk that referenced this pull request Jun 5, 2020
Moving the Tasks assembly to the tools folder
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 5, 2026
Changes include:
- Rename 'managed installations' to 'tracked installations' (dotnet#10)
- Fix '.metadata' -> 'metadata' folder name (dotnet#18)
- Include component type in error/warning messages (dotnet#11)
- Remove component spec from runtime update (dotnet#12)
- Remove GetInstallations wrapper (dotnet#6)
- ScopedMutex throws TimeoutException on failure (dotnet#22)
- Make InstallResult.Install non-nullable (dotnet#17)
- Remove ComponentFilesExist shortcut (dotnet#19)
- Wire up InstallSource enum (dotnet#21)
- ListCommand: enum types, narrowed mutex, read-only verify, spacing (dotnet#3,dotnet#4,dotnet#5,#1)
- Show global.json path in list output (dotnet#15)
- Add doc comments to ListData types (dotnet#7)
- Move SourceOption to CommonOptions, remove alias fields (dotnet#9)
- Remove ResolveChannelFromGlobalJson test hook wrapper (dotnet#14)
- Root 'dotnetup update' updates all components (dotnet#16)
- GlobalJsonChannelResolver: support rollForward policy (dotnet#13)
- Error when installing to unmanaged dotnet root (dotnet#20)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 6, 2026
Changes include:
- UpdateWorkflow.Execute returns non-zero exit code on failure (#1)
- InfoCommand JSON output includes InstallSpecs (dotnet#2)
- Wire --update-global-json through SdkUpdateCommand to UpdateWorkflow (dotnet#3)
- Implement DotnetInstallManager.UpdateGlobalJson using Utf8JsonReader (dotnet#3)
- Fix ResolveEntryDestPath to use normalized entry name (dotnet#4)
- Fix test: MajorMinor test uses correct channel '9.0' (dotnet#5)
- Fix test: LTS assertion checks Major instead of Minor (dotnet#6)
- Fix ScopedMutex.Dispose to not leak mutex on ReleaseMutex throw (dotnet#7)
- Make CommonOptions fields static readonly (dotnet#9)
- Remove unused --no-progress from uninstall parsers (dotnet#10)
- GarbageCollector catches Exception instead of just IOException (dotnet#11)
- Capitalize 'SDK' in SdkCommandParser description (dotnet#12)
- Eliminate redundant manifest reads in InstallerOrchestratorSingleton (dotnet#13)
- Fix STS test error message to say 'major' not 'minor' (dotnet#14)
- Make DotnetupUtilities.ExeSuffix readonly (dotnet#16)
- Fix FormatBytes to use floating-point with one decimal (dotnet#17)
- Remove dead ReleaseManifest variable in DotnetInstaller (dotnet#18)
- Make UpdateChannel.Name immutable (dotnet#19)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto 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.

4 participants

@natidea@333fred@eerhardt@srivatsn
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Add Package Dependency Resolution Task - #10

Merged
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps
Aug 10, 2016
Merged

Add Package Dependency Resolution Task#10
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps

Conversation

@natidea

@natideanatidea commented Aug 4, 2016

Copy link
Copy Markdown
Contributor

Task and targets for raising project.lock.json's contents to MSBuild Items, and computing references, copy locals etc. in down stream targets. This decoupling will allow these targets to be overridden by different project types.

Here are workitems for outstanding work based on feedback:

@333fred

Copy link
Copy Markdown
Member

@dotnet-bot test Windows Debug

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

namespace Microsoft.DotNet.Core.Build.Tasks

copyright on all code files. #Resolved


Refers to: src/Tasks/Microsoft.DotNet.Core.Build.Tasks/FileGroup.cs:1 in 859bc05. [](commit_id = 859bc05, deletion_comment = False)

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

<!-- General Properties -->
<PropertyGroup>
<!-- Turn off NuGet Task -->
<ResolveNuGetPackages>false</ResolveNuGetPackages>

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be done here or in https://github.com/dotnet/sdk/blob/master/src/Tasks/Microsoft.DotNet.Core.Build.Tasks/Microsoft.DotNet.Core.Sdk.props#L56-L57? I'm not certain which is better. My gut is to turn it off in the .props. That way if a user wants to turn it back on, they easily can in their .csproj. #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can experiment with props. Note that ordering is important, since this should be turned off before certain targets run. But putting in props should not affect this.


In reply to: 73918013 [](ancestors = 73918013)

@srivatsn

Copy link
Copy Markdown
Contributor

Tagging @jasonmalinowski as well.

DependsOnTargets="_ComputeLockFileReferences">
<ItemGroup>
<!-- Remove any references from ResolveNuGetPackageAssets -->
<Reference Remove="@(_ReferencesFromNuGetPackages)" />

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want this? I thought we turn ResolveNuGetPackageAssets off, so why bother? Wouldn't this just be getting in the way if some other target was trying to add these references? #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed (was a leftover artifact from testing)


In reply to: 73923197 [](ancestors = 73923197)

/// </summary>
public sealed class ResolvePackageDependencies : Task
{
private readonly Dictionary<string, string> _projectReferencesToOutputBasePaths = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if OrdinalIgnoreCase is the right thing here because Unix file systems can be case sensitive. Which means you could have 2 project references, one to "MyReference" and another to "myreference", and they would be different paths. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

<None Include="Microsoft.DotNet.Core.Sdk.props">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Microsoft.PackageDependencyResolution.targets">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be included in the NuGet package. It is really easy to add to the nuspec: https://github.com/dotnet/sdk/blob/master/build/Nuget/Microsoft.DotNet.Core.Sdk.nuspec#L38

@eerhardt

Copy link
Copy Markdown
Member

:shipit:

@eerhardt

eerhardt commented Aug 10, 2016

Copy link
Copy Markdown
Member

@natidea - FYI, I was able to add your .targets file to the Sdk.targets file in the follow commit:

https://github.com/eerhardt/core-sdk/commit/dd3e20766fe825d55cb7c3ae0d946a12e4f0858a.

Feel free to take the change. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

@eerhardt Awesome! Thanks, I'll grab that commit


In reply to: 238902943 [](ancestors = 238902943)

@natidea

Copy link
Copy Markdown
ContributorAuthor

/cc @dotnet/project-system any other comments? I will merge this in today, and make noted improvements/fixes in subsequent PRs.

@srivatsn

Copy link
Copy Markdown
Contributor

:shipit:

@natidea
natidea merged commit 9e4ae42 into dotnet:masterAug 10, 2016
nguerrera pushed a commit that referenced this pull request Oct 10, 2016
Add Package Dependency Resolution Task
mmitche pushed a commit to mmitche/sdk that referenced this pull request Jun 5, 2020
Moving the Tasks assembly to the tools folder
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 5, 2026
Changes include:
- Rename 'managed installations' to 'tracked installations' (dotnet#10)
- Fix '.metadata' -> 'metadata' folder name (dotnet#18)
- Include component type in error/warning messages (dotnet#11)
- Remove component spec from runtime update (dotnet#12)
- Remove GetInstallations wrapper (dotnet#6)
- ScopedMutex throws TimeoutException on failure (dotnet#22)
- Make InstallResult.Install non-nullable (dotnet#17)
- Remove ComponentFilesExist shortcut (dotnet#19)
- Wire up InstallSource enum (dotnet#21)
- ListCommand: enum types, narrowed mutex, read-only verify, spacing (dotnet#3,dotnet#4,dotnet#5,#1)
- Show global.json path in list output (dotnet#15)
- Add doc comments to ListData types (dotnet#7)
- Move SourceOption to CommonOptions, remove alias fields (dotnet#9)
- Remove ResolveChannelFromGlobalJson test hook wrapper (dotnet#14)
- Root 'dotnetup update' updates all components (dotnet#16)
- GlobalJsonChannelResolver: support rollForward policy (dotnet#13)
- Error when installing to unmanaged dotnet root (dotnet#20)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 6, 2026
Changes include:
- UpdateWorkflow.Execute returns non-zero exit code on failure (#1)
- InfoCommand JSON output includes InstallSpecs (dotnet#2)
- Wire --update-global-json through SdkUpdateCommand to UpdateWorkflow (dotnet#3)
- Implement DotnetInstallManager.UpdateGlobalJson using Utf8JsonReader (dotnet#3)
- Fix ResolveEntryDestPath to use normalized entry name (dotnet#4)
- Fix test: MajorMinor test uses correct channel '9.0' (dotnet#5)
- Fix test: LTS assertion checks Major instead of Minor (dotnet#6)
- Fix ScopedMutex.Dispose to not leak mutex on ReleaseMutex throw (dotnet#7)
- Make CommonOptions fields static readonly (dotnet#9)
- Remove unused --no-progress from uninstall parsers (dotnet#10)
- GarbageCollector catches Exception instead of just IOException (dotnet#11)
- Capitalize 'SDK' in SdkCommandParser description (dotnet#12)
- Eliminate redundant manifest reads in InstallerOrchestratorSingleton (dotnet#13)
- Fix STS test error message to say 'major' not 'minor' (dotnet#14)
- Make DotnetupUtilities.ExeSuffix readonly (dotnet#16)
- Fix FormatBytes to use floating-point with one decimal (dotnet#17)
- Remove dead ReleaseManifest variable in DotnetInstaller (dotnet#18)
- Make UpdateChannel.Name immutable (dotnet#19)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto 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.

4 participants

@natidea@333fred@eerhardt@srivatsn
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add Package Dependency Resolution Task - #10

Merged
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps
Aug 10, 2016
Merged

Add Package Dependency Resolution Task#10
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps

Conversation

@natidea

@natideanatidea commented Aug 4, 2016

Copy link
Copy Markdown
Contributor

Task and targets for raising project.lock.json's contents to MSBuild Items, and computing references, copy locals etc. in down stream targets. This decoupling will allow these targets to be overridden by different project types.

Here are workitems for outstanding work based on feedback:

@333fred

Copy link
Copy Markdown
Member

@dotnet-bot test Windows Debug

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

namespace Microsoft.DotNet.Core.Build.Tasks

copyright on all code files. #Resolved


Refers to: src/Tasks/Microsoft.DotNet.Core.Build.Tasks/FileGroup.cs:1 in 859bc05. [](commit_id = 859bc05, deletion_comment = False)

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

<!-- General Properties -->
<PropertyGroup>
<!-- Turn off NuGet Task -->
<ResolveNuGetPackages>false</ResolveNuGetPackages>

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be done here or in https://github.com/dotnet/sdk/blob/master/src/Tasks/Microsoft.DotNet.Core.Build.Tasks/Microsoft.DotNet.Core.Sdk.props#L56-L57? I'm not certain which is better. My gut is to turn it off in the .props. That way if a user wants to turn it back on, they easily can in their .csproj. #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can experiment with props. Note that ordering is important, since this should be turned off before certain targets run. But putting in props should not affect this.


In reply to: 73918013 [](ancestors = 73918013)

@srivatsn

Copy link
Copy Markdown
Contributor

Tagging @jasonmalinowski as well.

DependsOnTargets="_ComputeLockFileReferences">
<ItemGroup>
<!-- Remove any references from ResolveNuGetPackageAssets -->
<Reference Remove="@(_ReferencesFromNuGetPackages)" />

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want this? I thought we turn ResolveNuGetPackageAssets off, so why bother? Wouldn't this just be getting in the way if some other target was trying to add these references? #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed (was a leftover artifact from testing)


In reply to: 73923197 [](ancestors = 73923197)

/// </summary>
public sealed class ResolvePackageDependencies : Task
{
private readonly Dictionary<string, string> _projectReferencesToOutputBasePaths = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if OrdinalIgnoreCase is the right thing here because Unix file systems can be case sensitive. Which means you could have 2 project references, one to "MyReference" and another to "myreference", and they would be different paths. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

<None Include="Microsoft.DotNet.Core.Sdk.props">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Microsoft.PackageDependencyResolution.targets">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be included in the NuGet package. It is really easy to add to the nuspec: https://github.com/dotnet/sdk/blob/master/build/Nuget/Microsoft.DotNet.Core.Sdk.nuspec#L38

@eerhardt

Copy link
Copy Markdown
Member

:shipit:

@eerhardt

eerhardt commented Aug 10, 2016

Copy link
Copy Markdown
Member

@natidea - FYI, I was able to add your .targets file to the Sdk.targets file in the follow commit:

https://github.com/eerhardt/core-sdk/commit/dd3e20766fe825d55cb7c3ae0d946a12e4f0858a.

Feel free to take the change. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

@eerhardt Awesome! Thanks, I'll grab that commit


In reply to: 238902943 [](ancestors = 238902943)

@natidea

Copy link
Copy Markdown
ContributorAuthor

/cc @dotnet/project-system any other comments? I will merge this in today, and make noted improvements/fixes in subsequent PRs.

@srivatsn

Copy link
Copy Markdown
Contributor

:shipit:

@natidea
natidea merged commit 9e4ae42 into dotnet:masterAug 10, 2016
nguerrera pushed a commit that referenced this pull request Oct 10, 2016
Add Package Dependency Resolution Task
mmitche pushed a commit to mmitche/sdk that referenced this pull request Jun 5, 2020
Moving the Tasks assembly to the tools folder
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 5, 2026
Changes include:
- Rename 'managed installations' to 'tracked installations' (dotnet#10)
- Fix '.metadata' -> 'metadata' folder name (dotnet#18)
- Include component type in error/warning messages (dotnet#11)
- Remove component spec from runtime update (dotnet#12)
- Remove GetInstallations wrapper (dotnet#6)
- ScopedMutex throws TimeoutException on failure (dotnet#22)
- Make InstallResult.Install non-nullable (dotnet#17)
- Remove ComponentFilesExist shortcut (dotnet#19)
- Wire up InstallSource enum (dotnet#21)
- ListCommand: enum types, narrowed mutex, read-only verify, spacing (dotnet#3,dotnet#4,dotnet#5,#1)
- Show global.json path in list output (dotnet#15)
- Add doc comments to ListData types (dotnet#7)
- Move SourceOption to CommonOptions, remove alias fields (dotnet#9)
- Remove ResolveChannelFromGlobalJson test hook wrapper (dotnet#14)
- Root 'dotnetup update' updates all components (dotnet#16)
- GlobalJsonChannelResolver: support rollForward policy (dotnet#13)
- Error when installing to unmanaged dotnet root (dotnet#20)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 6, 2026
Changes include:
- UpdateWorkflow.Execute returns non-zero exit code on failure (#1)
- InfoCommand JSON output includes InstallSpecs (dotnet#2)
- Wire --update-global-json through SdkUpdateCommand to UpdateWorkflow (dotnet#3)
- Implement DotnetInstallManager.UpdateGlobalJson using Utf8JsonReader (dotnet#3)
- Fix ResolveEntryDestPath to use normalized entry name (dotnet#4)
- Fix test: MajorMinor test uses correct channel '9.0' (dotnet#5)
- Fix test: LTS assertion checks Major instead of Minor (dotnet#6)
- Fix ScopedMutex.Dispose to not leak mutex on ReleaseMutex throw (dotnet#7)
- Make CommonOptions fields static readonly (dotnet#9)
- Remove unused --no-progress from uninstall parsers (dotnet#10)
- GarbageCollector catches Exception instead of just IOException (dotnet#11)
- Capitalize 'SDK' in SdkCommandParser description (dotnet#12)
- Eliminate redundant manifest reads in InstallerOrchestratorSingleton (dotnet#13)
- Fix STS test error message to say 'major' not 'minor' (dotnet#14)
- Make DotnetupUtilities.ExeSuffix readonly (dotnet#16)
- Fix FormatBytes to use floating-point with one decimal (dotnet#17)
- Remove dead ReleaseManifest variable in DotnetInstaller (dotnet#18)
- Make UpdateChannel.Name immutable (dotnet#19)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto 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.

4 participants

@natidea@333fred@eerhardt@srivatsn
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add Package Dependency Resolution Task - #10

Merged
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps
Aug 10, 2016
Merged

Add Package Dependency Resolution Task#10
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps

Conversation

@natidea

@natideanatidea commented Aug 4, 2016

Copy link
Copy Markdown
Contributor

Task and targets for raising project.lock.json's contents to MSBuild Items, and computing references, copy locals etc. in down stream targets. This decoupling will allow these targets to be overridden by different project types.

Here are workitems for outstanding work based on feedback:

@333fred

Copy link
Copy Markdown
Member

@dotnet-bot test Windows Debug

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

namespace Microsoft.DotNet.Core.Build.Tasks

copyright on all code files. #Resolved


Refers to: src/Tasks/Microsoft.DotNet.Core.Build.Tasks/FileGroup.cs:1 in 859bc05. [](commit_id = 859bc05, deletion_comment = False)

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

<!-- General Properties -->
<PropertyGroup>
<!-- Turn off NuGet Task -->
<ResolveNuGetPackages>false</ResolveNuGetPackages>

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be done here or in https://github.com/dotnet/sdk/blob/master/src/Tasks/Microsoft.DotNet.Core.Build.Tasks/Microsoft.DotNet.Core.Sdk.props#L56-L57? I'm not certain which is better. My gut is to turn it off in the .props. That way if a user wants to turn it back on, they easily can in their .csproj. #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can experiment with props. Note that ordering is important, since this should be turned off before certain targets run. But putting in props should not affect this.


In reply to: 73918013 [](ancestors = 73918013)

@srivatsn

Copy link
Copy Markdown
Contributor

Tagging @jasonmalinowski as well.

DependsOnTargets="_ComputeLockFileReferences">
<ItemGroup>
<!-- Remove any references from ResolveNuGetPackageAssets -->
<Reference Remove="@(_ReferencesFromNuGetPackages)" />

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want this? I thought we turn ResolveNuGetPackageAssets off, so why bother? Wouldn't this just be getting in the way if some other target was trying to add these references? #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed (was a leftover artifact from testing)


In reply to: 73923197 [](ancestors = 73923197)

/// </summary>
public sealed class ResolvePackageDependencies : Task
{
private readonly Dictionary<string, string> _projectReferencesToOutputBasePaths = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if OrdinalIgnoreCase is the right thing here because Unix file systems can be case sensitive. Which means you could have 2 project references, one to "MyReference" and another to "myreference", and they would be different paths. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

<None Include="Microsoft.DotNet.Core.Sdk.props">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Microsoft.PackageDependencyResolution.targets">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be included in the NuGet package. It is really easy to add to the nuspec: https://github.com/dotnet/sdk/blob/master/build/Nuget/Microsoft.DotNet.Core.Sdk.nuspec#L38

@eerhardt

Copy link
Copy Markdown
Member

:shipit:

@eerhardt

eerhardt commented Aug 10, 2016

Copy link
Copy Markdown
Member

@natidea - FYI, I was able to add your .targets file to the Sdk.targets file in the follow commit:

https://github.com/eerhardt/core-sdk/commit/dd3e20766fe825d55cb7c3ae0d946a12e4f0858a.

Feel free to take the change. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

@eerhardt Awesome! Thanks, I'll grab that commit


In reply to: 238902943 [](ancestors = 238902943)

@natidea

Copy link
Copy Markdown
ContributorAuthor

/cc @dotnet/project-system any other comments? I will merge this in today, and make noted improvements/fixes in subsequent PRs.

@srivatsn

Copy link
Copy Markdown
Contributor

:shipit:

@natidea
natidea merged commit 9e4ae42 into dotnet:masterAug 10, 2016
nguerrera pushed a commit that referenced this pull request Oct 10, 2016
Add Package Dependency Resolution Task
mmitche pushed a commit to mmitche/sdk that referenced this pull request Jun 5, 2020
Moving the Tasks assembly to the tools folder
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 5, 2026
Changes include:
- Rename 'managed installations' to 'tracked installations' (dotnet#10)
- Fix '.metadata' -> 'metadata' folder name (dotnet#18)
- Include component type in error/warning messages (dotnet#11)
- Remove component spec from runtime update (dotnet#12)
- Remove GetInstallations wrapper (dotnet#6)
- ScopedMutex throws TimeoutException on failure (dotnet#22)
- Make InstallResult.Install non-nullable (dotnet#17)
- Remove ComponentFilesExist shortcut (dotnet#19)
- Wire up InstallSource enum (dotnet#21)
- ListCommand: enum types, narrowed mutex, read-only verify, spacing (dotnet#3,dotnet#4,dotnet#5,#1)
- Show global.json path in list output (dotnet#15)
- Add doc comments to ListData types (dotnet#7)
- Move SourceOption to CommonOptions, remove alias fields (dotnet#9)
- Remove ResolveChannelFromGlobalJson test hook wrapper (dotnet#14)
- Root 'dotnetup update' updates all components (dotnet#16)
- GlobalJsonChannelResolver: support rollForward policy (dotnet#13)
- Error when installing to unmanaged dotnet root (dotnet#20)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 6, 2026
Changes include:
- UpdateWorkflow.Execute returns non-zero exit code on failure (#1)
- InfoCommand JSON output includes InstallSpecs (dotnet#2)
- Wire --update-global-json through SdkUpdateCommand to UpdateWorkflow (dotnet#3)
- Implement DotnetInstallManager.UpdateGlobalJson using Utf8JsonReader (dotnet#3)
- Fix ResolveEntryDestPath to use normalized entry name (dotnet#4)
- Fix test: MajorMinor test uses correct channel '9.0' (dotnet#5)
- Fix test: LTS assertion checks Major instead of Minor (dotnet#6)
- Fix ScopedMutex.Dispose to not leak mutex on ReleaseMutex throw (dotnet#7)
- Make CommonOptions fields static readonly (dotnet#9)
- Remove unused --no-progress from uninstall parsers (dotnet#10)
- GarbageCollector catches Exception instead of just IOException (dotnet#11)
- Capitalize 'SDK' in SdkCommandParser description (dotnet#12)
- Eliminate redundant manifest reads in InstallerOrchestratorSingleton (dotnet#13)
- Fix STS test error message to say 'major' not 'minor' (dotnet#14)
- Make DotnetupUtilities.ExeSuffix readonly (dotnet#16)
- Fix FormatBytes to use floating-point with one decimal (dotnet#17)
- Remove dead ReleaseManifest variable in DotnetInstaller (dotnet#18)
- Make UpdateChannel.Name immutable (dotnet#19)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto 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.

4 participants

@natidea@333fred@eerhardt@srivatsn
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Add Package Dependency Resolution Task - #10

Merged
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps
Aug 10, 2016
Merged

Add Package Dependency Resolution Task#10
natidea merged 24 commits into
dotnet:masterfrom
natidea:packageDeps

Conversation

@natidea

@natideanatidea commented Aug 4, 2016

Copy link
Copy Markdown
Contributor

Task and targets for raising project.lock.json's contents to MSBuild Items, and computing references, copy locals etc. in down stream targets. This decoupling will allow these targets to be overridden by different project types.

Here are workitems for outstanding work based on feedback:

@333fred

Copy link
Copy Markdown
Member

@dotnet-bot test Windows Debug

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

namespace Microsoft.DotNet.Core.Build.Tasks

copyright on all code files. #Resolved


Refers to: src/Tasks/Microsoft.DotNet.Core.Build.Tasks/FileGroup.cs:1 in 859bc05. [](commit_id = 859bc05, deletion_comment = False)

@eerhardt

eerhardt commented Aug 8, 2016

Copy link
Copy Markdown
Member

<!-- General Properties -->
<PropertyGroup>
<!-- Turn off NuGet Task -->
<ResolveNuGetPackages>false</ResolveNuGetPackages>

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be done here or in https://github.com/dotnet/sdk/blob/master/src/Tasks/Microsoft.DotNet.Core.Build.Tasks/Microsoft.DotNet.Core.Sdk.props#L56-L57? I'm not certain which is better. My gut is to turn it off in the .props. That way if a user wants to turn it back on, they easily can in their .csproj. #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can experiment with props. Note that ordering is important, since this should be turned off before certain targets run. But putting in props should not affect this.


In reply to: 73918013 [](ancestors = 73918013)

@srivatsn

Copy link
Copy Markdown
Contributor

Tagging @jasonmalinowski as well.

DependsOnTargets="_ComputeLockFileReferences">
<ItemGroup>
<!-- Remove any references from ResolveNuGetPackageAssets -->
<Reference Remove="@(_ReferencesFromNuGetPackages)" />

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want this? I thought we turn ResolveNuGetPackageAssets off, so why bother? Wouldn't this just be getting in the way if some other target was trying to add these references? #Resolved

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed (was a leftover artifact from testing)


In reply to: 73923197 [](ancestors = 73923197)

/// </summary>
public sealed class ResolvePackageDependencies : Task
{
private readonly Dictionary<string, string> _projectReferencesToOutputBasePaths = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);

@eerhardteerhardtAug 8, 2016

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if OrdinalIgnoreCase is the right thing here because Unix file systems can be case sensitive. Which means you could have 2 project references, one to "MyReference" and another to "myreference", and they would be different paths. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

<None Include="Microsoft.DotNet.Core.Sdk.props">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Microsoft.PackageDependencyResolution.targets">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be included in the NuGet package. It is really easy to add to the nuspec: https://github.com/dotnet/sdk/blob/master/build/Nuget/Microsoft.DotNet.Core.Sdk.nuspec#L38

@eerhardt

Copy link
Copy Markdown
Member

:shipit:

@eerhardt

eerhardt commented Aug 10, 2016

Copy link
Copy Markdown
Member

@natidea - FYI, I was able to add your .targets file to the Sdk.targets file in the follow commit:

https://github.com/eerhardt/core-sdk/commit/dd3e20766fe825d55cb7c3ae0d946a12e4f0858a.

Feel free to take the change. #Resolved

@natidea

Copy link
Copy Markdown
ContributorAuthor

@eerhardt Awesome! Thanks, I'll grab that commit


In reply to: 238902943 [](ancestors = 238902943)

@natidea

Copy link
Copy Markdown
ContributorAuthor

/cc @dotnet/project-system any other comments? I will merge this in today, and make noted improvements/fixes in subsequent PRs.

@srivatsn

Copy link
Copy Markdown
Contributor

:shipit:

@natidea
natidea merged commit 9e4ae42 into dotnet:masterAug 10, 2016
nguerrera pushed a commit that referenced this pull request Oct 10, 2016
Add Package Dependency Resolution Task
mmitche pushed a commit to mmitche/sdk that referenced this pull request Jun 5, 2020
Moving the Tasks assembly to the tools folder
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 5, 2026
Changes include:
- Rename 'managed installations' to 'tracked installations' (dotnet#10)
- Fix '.metadata' -> 'metadata' folder name (dotnet#18)
- Include component type in error/warning messages (dotnet#11)
- Remove component spec from runtime update (dotnet#12)
- Remove GetInstallations wrapper (dotnet#6)
- ScopedMutex throws TimeoutException on failure (dotnet#22)
- Make InstallResult.Install non-nullable (dotnet#17)
- Remove ComponentFilesExist shortcut (dotnet#19)
- Wire up InstallSource enum (dotnet#21)
- ListCommand: enum types, narrowed mutex, read-only verify, spacing (dotnet#3,dotnet#4,dotnet#5,#1)
- Show global.json path in list output (dotnet#15)
- Add doc comments to ListData types (dotnet#7)
- Move SourceOption to CommonOptions, remove alias fields (dotnet#9)
- Remove ResolveChannelFromGlobalJson test hook wrapper (dotnet#14)
- Root 'dotnetup update' updates all components (dotnet#16)
- GlobalJsonChannelResolver: support rollForward policy (dotnet#13)
- Error when installing to unmanaged dotnet root (dotnet#20)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dsplaisted added a commit to dsplaisted/sdk that referenced this pull request Mar 6, 2026
Changes include:
- UpdateWorkflow.Execute returns non-zero exit code on failure (#1)
- InfoCommand JSON output includes InstallSpecs (dotnet#2)
- Wire --update-global-json through SdkUpdateCommand to UpdateWorkflow (dotnet#3)
- Implement DotnetInstallManager.UpdateGlobalJson using Utf8JsonReader (dotnet#3)
- Fix ResolveEntryDestPath to use normalized entry name (dotnet#4)
- Fix test: MajorMinor test uses correct channel '9.0' (dotnet#5)
- Fix test: LTS assertion checks Major instead of Minor (dotnet#6)
- Fix ScopedMutex.Dispose to not leak mutex on ReleaseMutex throw (dotnet#7)
- Make CommonOptions fields static readonly (dotnet#9)
- Remove unused --no-progress from uninstall parsers (dotnet#10)
- GarbageCollector catches Exception instead of just IOException (dotnet#11)
- Capitalize 'SDK' in SdkCommandParser description (dotnet#12)
- Eliminate redundant manifest reads in InstallerOrchestratorSingleton (dotnet#13)
- Fix STS test error message to say 'major' not 'minor' (dotnet#14)
- Make DotnetupUtilities.ExeSuffix readonly (dotnet#16)
- Fix FormatBytes to use floating-point with one decimal (dotnet#17)
- Remove dead ReleaseManifest variable in DotnetInstaller (dotnet#18)
- Make UpdateChannel.Name immutable (dotnet#19)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto 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.

4 participants

@natidea@333fred@eerhardt@srivatsn