dotnet / dotnet/msbuild

Warnings are not reported for repeated builds

Open
#3,046 6 comments 8 reactions 0 assignees View on GitHub
Area: Debuggability blocked triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

### Steps to reproduce

1. `dotnet new classlib`
2. Change Class1.cs to:

```c#
class C
{
async void M() {}
}
```

3. `dotnet build`
4. `dotnet build`

### Expected behavior

The second `dotnet build` prints the CS1998 warning, just like the first one.

### Actual behavior

The second `dotnet build` does not print any warnings:

```
> dotnet build
Microsoft (R) Build Engine version 15.6.82.30579 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

Restore completed in 87,92 ms for C:\code\tmp\hwapp\hwapp.csproj.
Class1.cs(3,16): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. [C:\code\tmp\hwapp\hwapp.csproj]
hwapp -> C:\code\tmp\hwapp\bin\Debug\netstandard2.0\hwapp.dll

Build succeeded.

Class1.cs(3,16): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. [C:\code\tmp\hwapp\hwapp.csproj]
1 Warning(s)
0 Error(s)

Time Elapsed 00:00:02.37
> dotnet build
Microsoft (R) Build Engine version 15.6.82.30579 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

Restore completed in 81,94 ms for C:\code\tmp\hwapp\hwapp.csproj.
hwapp -> C:\code\tmp\hwapp\bin\Debug\netstandard2.0\hwapp.dll

Build succeeded.
0 Warning(s)
0 Error(s)

Time Elapsed 00:00:01.96
```

Apparently, this happens because targets that are up to date are not re-run. Maybe warnings from previous builds could be saved somewhere and reported again when the target is skipped because it's up to date?

### Environment data
`dotnet --info` output:

.NET Command Line Tools (2.1.300-preview2-008251)

Product Information:
Version: 2.1.300-preview2-008251
Commit SHA-1 hash: 94fd3fd392

Runtime Environment:
OS Name: Windows
OS Version: 10.0.16299
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.1.300-preview2-008251\

Microsoft .NET Core Shared Framework Host

Version : 2.1.0-preview2-26131-06
Build : b13a0d5c331f374afd35ded57b9a4b4ab128864c

---

Originally reported as https://github.com/dotnet/cli/issues/8722.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.