gpt4 book ai didi

visual-studio - PackageReference 条件被忽略

转载 作者:行者123 更新时间:2023-12-04 06:36:03 25 4
gpt4 key购买 nike

在我的 VS 2017 项目中,我引用了 docfx.console 包,我希望它仅在满足特定条件时使用。但是该包被用于所有构建。

这是我项目的一部分。我希望在配置为 Installer/AnyCPU 并且 VS 正在构建 net40 风格时使用 docfx.console。

<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net40;netstandard1.3;netstandard2.0</TargetFrameworks>
<!-- ... -->
<Configurations>Debug;Release;Installer</Configurations>
</PropertyGroup>

<ItemGroup Condition=" '$(TargetFramework)'=='net40' ">
<!-- ... -->
<PackageReference Include="docfx.console" Version="2.30.0" Condition="'$(Configuration)|$(Platform)'=='Installer|AnyCPU'" />
</ItemGroup>

<!-- ... -->
</Project>

有没有办法在仅针对 net40 的安装程序构建中使用 docfx.console?

最佳答案

总而言之,即使条件为“false”,包也会被导入。

<Project Sdk="Microsoft.NET.Sdk">    
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp3.0;netcoreapp2.2;net472</TargetFrameworks>
<Platforms>x64;x86</Platforms>
</PropertyGroup>
<ItemGroup Condition="false">
<PackageReference Include="MyPackage" Version="1.0.0" />
</ItemGroup>
</Project>

我们发现我们可以通过将 packagereference 放在不同的文件中来解决这个问题,并使文件的导入有条件。

单独的文件:packagerefs.targets
<Project Sdk="Microsoft.NET.Sdk">    
<ItemGroup>
<PackageReference Include="MyPackage" Version="1.0.0" />
</ItemGroup>
</Project>

项目文件:
<Project Sdk="Microsoft.NET.Sdk">    
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp3.0;netcoreapp2.2;net472</TargetFrameworks>
<Platforms>x64;x86</Platforms>
</PropertyGroup>
<Import Project="packagerefs.targets" Condition="false" />
</Project>

关于visual-studio - PackageReference 条件被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48590270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com