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

Ensure transitive dependencies are properly resolved for inference #322

Merged
merged 1 commit into from
Feb 24, 2023

Conversation

kzu
Copy link
Member

@kzu kzu commented Feb 24, 2023

.NET 7.0 SDK changed from:

    <ResolvePackageDependencies
      ProjectPath="$(MSBuildProjectFullPath)"
      ProjectAssetsFile="$(ProjectAssetsFile)"
      ProjectLanguage="$(Language)"
      EmitLegacyAssetsFileItems="$(EmitLegacyAssetsFileItems)"
      TargetFramework="$(TargetFramework)"
      ContinueOnError="ErrorAndContinue">

      <Output TaskParameter="PackageDefinitions" ItemName="PackageDefinitions" />
      <Output TaskParameter="PackageDependencies" ItemName="PackageDependencies" />

      <!-- These outputs only produced when EmitLegacyAssetsFileItems is true -->
      <Output TaskParameter="TargetDefinitions" ItemName="TargetDefinitions" />
      <Output TaskParameter="FileDefinitions" ItemName="FileDefinitions" />
      <Output TaskParameter="FileDependencies" ItemName="FileDependencies" />
    </ResolvePackageDependencies>

to:

    <ResolvePackageDependencies
      ProjectPath="$(MSBuildProjectFullPath)"
      ProjectAssetsFile="$(ProjectAssetsFile)"
      ProjectLanguage="$(Language)"
      TargetFramework="$(TargetFramework)"
      ContinueOnError="ErrorAndContinue"
      Condition="'$(EmitLegacyAssetsFileItems)' == 'true'">

      <Output TaskParameter="PackageDefinitions" ItemName="PackageDefinitions" />
      <Output TaskParameter="PackageDependencies" ItemName="PackageDependencies" />
      <Output TaskParameter="TargetDefinitions" ItemName="TargetDefinitions" />
      <Output TaskParameter="FileDefinitions" ItemName="FileDefinitions" />
      <Output TaskParameter="FileDependencies" ItemName="FileDependencies" />
    </ResolvePackageDependencies>

Since the SDK now conditions the execution of the resolve to the value of EmitLegacyAssetsFileItems, we need to explicitly set it.

Since this was likely done for performance reasons, only turn on when package inference is active, since we don't use that anywhere else.

.NET 7.0 SDK changed from:

```xml
    <ResolvePackageDependencies
      ProjectPath="$(MSBuildProjectFullPath)"
      ProjectAssetsFile="$(ProjectAssetsFile)"
      ProjectLanguage="$(Language)"
      EmitLegacyAssetsFileItems="$(EmitLegacyAssetsFileItems)"
      TargetFramework="$(TargetFramework)"
      ContinueOnError="ErrorAndContinue">

      <Output TaskParameter="PackageDefinitions" ItemName="PackageDefinitions" />
      <Output TaskParameter="PackageDependencies" ItemName="PackageDependencies" />

      <!-- These outputs only produced when EmitLegacyAssetsFileItems is true -->
      <Output TaskParameter="TargetDefinitions" ItemName="TargetDefinitions" />
      <Output TaskParameter="FileDefinitions" ItemName="FileDefinitions" />
      <Output TaskParameter="FileDependencies" ItemName="FileDependencies" />
    </ResolvePackageDependencies>
```

to:

```xml
    <ResolvePackageDependencies
      ProjectPath="$(MSBuildProjectFullPath)"
      ProjectAssetsFile="$(ProjectAssetsFile)"
      ProjectLanguage="$(Language)"
      TargetFramework="$(TargetFramework)"
      ContinueOnError="ErrorAndContinue"
      Condition="'$(EmitLegacyAssetsFileItems)' == 'true'">

      <Output TaskParameter="PackageDefinitions" ItemName="PackageDefinitions" />
      <Output TaskParameter="PackageDependencies" ItemName="PackageDependencies" />
      <Output TaskParameter="TargetDefinitions" ItemName="TargetDefinitions" />
      <Output TaskParameter="FileDefinitions" ItemName="FileDefinitions" />
      <Output TaskParameter="FileDependencies" ItemName="FileDependencies" />
    </ResolvePackageDependencies>
```

Since the SDK now conditions the execution of the resolve to the value of `EmitLegacyAssetsFileItems`, we need to explicitly set it.

Since this was likely done for performance reasons, only turn on when package inference is active, since we don't use that anywhere else.
@kzu kzu added the enhancement New feature or request label Feb 24, 2023
@kzu kzu merged commit 2ca40f3 into main Feb 24, 2023
@kzu kzu deleted the dev/transitivedeps branch February 24, 2023 23:45
@devlooped devlooped locked and limited conversation to collaborators Nov 23, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant