我正在尝试使用 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>
其他人也走上了这条路,但似乎有一些警告。由于我的构建过程无法更改,因此我需要有条件地执行此操作。使用文件引用会迫使我失去 Go to Definition 和 Find All References(抱歉,我也无法安装 ReSharper 来解决这个问题)。