[英]Why am I getting different MSBuild behavior between Visual Studio 2019 Output vs admin dev cmd prompt
Given:鉴于:
Visual Studio 2019 C# Console Application Visual Studio 2019 C# 控制台应用程序
.Net Framework 4.6.1 .Net 框架 4.6.1
I'm just testing a simple AfterBuild
target with a simple message.我只是用一条简单的消息测试一个简单的AfterBuild
目标。 However, I'm getting different behavior between editor output and admin cmd prompt.但是,我在编辑器 output 和管理员 cmd 提示符之间得到了不同的行为。 Message doesn't show up in output window but it does in cmd prompt.消息未显示在 output window 中,但它出现在 cmd 提示符中。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{C59B258B-6313-4F51-A5DE-7E8C2D339F63}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>ConsoleApp1</RootNamespace>
<AssemblyName>ConsoleApp1</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="AfterBuild">
<Message Text="Testing 123"/>
</Target>
</Project>
Visual Studio uses minimal
build output verbosity by default (you can check it via Tools->Options->Projects and Solutions->Build and Run->MSBuild project build output verbosity option), while in command line it's set to normal
by default. Visual Studio 默认使用minimal
构建 output 详细度(您可以通过工具->选项->项目和解决方案->构建和运行->MSBuild 项目构建 output 详细度选项检查它),而在命令行中默认设置为normal
。 Therefore you can see the message in command line, but not in the VS output.因此,您可以在命令行中看到该消息,但在 VS output 中看不到。
You should change the option in Visual Studio or set the Importance
of message to High
您应该更改 Visual Studio 中的选项或将消息的Importance
设置为High
<Message Text="Testing 123" Importance="High"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.