gpt4 book ai didi

msbuild - csproj 属性条件

转载 作者:行者123 更新时间:2023-12-02 07:48:21 25 4
gpt4 key购买 nike

我想在 csproj 文件中添加一个带有条件的属性。

条件是:如果网络位置可用,我的属性应具有该值,否则为另一个位置。

有什么提示吗?

谢谢,霍雷亚

最佳答案

您也许可以使用静态方法 System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable .

不幸的是,我认为您不能直接从选择条件调用此静态方法来设置您的 PropertyGroup。您可能需要编写一个自定义内联 MSBuild 任务来为您执行此操作。

<?xml version="1.0" encoding="utf-8"?>
<Project
ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
InitialTargets="Test"
DefaultTargets="Test"
>
<Choose>
<When Condition="$(IsConnected) == 'True'">
<PropertyGroup>
<ConnectMessage>You are connected</ConnectMessage>
</PropertyGroup>
</When>

<Otherwise>
<PropertyGroup>
<ConnectMessage>You are NOT connected</ConnectMessage>
</PropertyGroup>
</Otherwise>

</Choose>


<UsingTask
TaskName="GetConnectionStatus"
TaskFactory="CodeTaskFactory"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">

<ParameterGroup>
<IsConnected ParameterType="System.String" Output="true" />
</ParameterGroup>
<Task>
<Code Type="Fragment" Language="cs">
IsConnected = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable().ToString();
</Code>
</Task>
</UsingTask>


<Target Name="Initialize">

<GetConnectionStatus>
<Output PropertyName="IsConnected" TaskParameter="IsConnected" />
</GetConnectionStatus>

<PropertyGroup>
<ConnectMessage Condition="$(IsConnected) == 'True'">You Are Connected</ConnectMessage>
</PropertyGroup>

<Message Text="ConnectionStatus $(IsConnected)"/>
<Message Text="$(ConnectMessage)"/>
</Target>

<Target Name="Test" DependsOnTargets="Initialize">

<Message Text="$(ConnectMessage)"/>

</Target>
</Project>

关于msbuild - csproj 属性条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5311156/

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