您可以使用静态方法System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable.
不幸的是,我认为您不能直接从Chose条件调用此静态方法来设置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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4628 次 |
| 最近记录: |