是否可以在引用提示路径上使用Choose / When / otherwise元素?
这样的事情:
<ItemGroup>
<Reference Include="SharedLib...">
<SpecificVersion>False</SpecificVersion>
<Choose>
<When Condition="Exists('..\..\SharedLib\bin\Debug')">
<HintPath>..\..\SharedLib\bin\Debug\SharedLib.dll</HintPath>
</When>
<Otherwise>
<HintPath>.\SharedLib.dll</HintPath>
</Otherwise>
</Choose>
</Reference>
</ItemGroup>
但是我得到的错误是......必需属性“Include”在元素“ItemGroup”中是空的或缺失
其他尝试/版本产生了类似的错误,例如......“选择”项目元数据名称是保留的,无法使用。
这让我觉得我不能使用ItemGroup元素的“Choose”元素INSIDE。
我欢迎澄清。请参阅附带的错误示例。 Visual Studio csproj Errors when loading project
答案 0 :(得分:0)
我认为你不能只在选择中放置HintPath。您必须将整个ItemGroup放在When和Other中。像这样:
<Choose>
<When Condition="Exists('..\..\SharedLib\bin\Debug')">
<ItemGroup>
<Reference Include="SharedLib...">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\SharedLib\bin\Debug\SharedLib.dll</HintPath>
</Reference>
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<Reference Include="SharedLib...">
<SpecificVersion>False</SpecificVersion>
<HintPath>.\SharedLib.dll</HintPath>
</Reference>
</ItemGroup>
</Otherwise>
</Choose>