特定の条件下で<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 は依存関係をソリューション プロジェクトでどのように埋めますか?