2

特定の条件下で<PackageReference>forの一部を置き換えるカスタム MSBuild ターゲットを作成しています。<ProjectReference>

次の msbuild ターゲットがあります。

<Target Name="ApplyProjectRedirects"
      BeforeTargets="_GenerateDotnetCliToolReferenceSpecs;_GenerateProjectRestoreGraphPerFramework;_GenerateRestoreGraphWalkPerFramework;CollectPackageReferences;BeforeResolveReferences;ResolveAssemblyReferences"
      AfterTargets="PaketRestore">

    <ItemGroup>
      <!-- remove packages we are redirecting to projects, and include the projects -->
      <PackageReference Remove="@(ExcludePackageReferences)" />
      <ProjectReference Include="@(IncludeProjectPaths)" />
    </ItemGroup>

    <ItemGroup>
      <!-- include the packages in visual studio 'nuget' display, so we know what we redirected -->
      <PackageReference Include="@(ExcludePackageReferences)">
        <ExcludeAssets>all</ExcludeAssets>
      </PackageReference>
    </ItemGroup>

</Target>

私のプロジェクト参照は、Visual Studio の依存関係では見えません。ただし、プロジェクトは意図したとおりにコンパイルされます。

<ItemGroup>ターゲットが の前に実行されると、 with <PackageReference>inside target が尊重されることがわかりましたCollectPackageReferences<ProjectReference>しかし、最初の目標も達成できませんでした。

Visual Studio は依存関係をソリューション プロジェクトでどのように埋めますか?

4

0 に答える 0