BuildingInVsideisualStudioプロパティを使用して、csproj内の同じdllへのプロジェクトとファイル参照を追加しようとしています。ただし、それらが一緒にcsprojにある場合は、ファイル参照のみが取得されます。ファイル参照を削除すると、csprojが取得されます。注文を入れ替えてみましたが、うまくいきませんでした。これが機能しない理由はありますか?
基本的な考え方は次のとおりです。
<ItemGroup Condition="'$(BuildingInsideVisualStudio)' == false">
<Reference Include="MyNamespace.Mine">
<HintPath>..\$(OutDir)\MyNamespace.Mine.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup Condition="'$(BuildingInsideVisualStudio)' == '' Or '$(BuildingInsideVisualStudio)' == true">
<ProjectReference Include="..\MyNamespace.Mine.csproj">
<Project>{GUID}</Project>
<Name>MyNamespace.Mine</Name>
</ProjectReference>
</ItemGroup>
他の誰かもこの道を進んでいますが、いくつかの注意点があるようです。ビルドプロセスは変更できないため、これを条件付きで行う必要があります。ファイル参照を使用すると、[定義に移動]と[すべての参照を検索]が失われます(申し訳ありませんが、これを解決するためにReSharperをインストールすることもできません)。