EnvironmentAbstractions.BannedApiAnalyzer
2.0.2-preview
See the version list below for details.
dotnet add package EnvironmentAbstractions.BannedApiAnalyzer --version 2.0.2-preview
NuGet\Install-Package EnvironmentAbstractions.BannedApiAnalyzer -Version 2.0.2-preview
<PackageReference Include="EnvironmentAbstractions.BannedApiAnalyzer" Version="2.0.2-preview"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add EnvironmentAbstractions.BannedApiAnalyzer --version 2.0.2-preview
#r "nuget: EnvironmentAbstractions.BannedApiAnalyzer, 2.0.2-preview"
// Install EnvironmentAbstractions.BannedApiAnalyzer as a Cake Addin #addin nuget:?package=EnvironmentAbstractions.BannedApiAnalyzer&version=2.0.2-preview&prerelease // Install EnvironmentAbstractions.BannedApiAnalyzer as a Cake Tool #tool nuget:?package=EnvironmentAbstractions.BannedApiAnalyzer&version=2.0.2-preview&prerelease
EnvironmentAbstractions.BannedApiAnalyzer
The EnvironmentAbstractions.BannedApiAnalyzer
package uses the
Microsoft.CodeAnalysis.BannedApiAnalyzers
package to prevent usages of System.Environment
to access the environment.
Adding a <PackageReference />
to the package in your project is all you need:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="EnvironmentAbstractions.BannedApiAnalyzer" Version="1.0.0" />
</ItemGroup>
</Project>
Then when anyone attempts to call the built-in methods for accessing the environment, they'll receive a build warning indicating that they should use IEnvironmentProvider
instead:
public static void Main(string[] args)
{
Console.WriteLine("Hello, {0}!", System.Environment.UserName);
}
warning RS0030: The symbol 'Environment.UserName' is banned in this project: Use IEnvironmentProvider.UserName instead.
If you want to only ban access to environment variables, you'll need to first set the MSBuild property BanSystemEnvironmentVariableAPIs
to true
in your project:
<PropertyGroup>
<BanSystemEnvironmentVariableAPIs>true</BanSystemEnvironmentVariableAPIs>
</PropertyGroup>
Then only accessing environment variables will emit a compile-time error telling developers to use IEnvironmentVariableProvider
instead:
public static void Main(string[] args)
{
Console.WriteLine("Hello, {0}!", System.Environment.GetEnvironmentVariable("USERNAME"));
}
warning RS0030: The symbol 'Environment.GetEnvironmentVariable(string)' is banned in this project: Use IEnvironmentVariableProvider.GetEnvironmentVariable(string) instead.
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- EnvironmentAbstractions (>= 2.0.2-preview)
- Microsoft.CodeAnalysis.BannedApiAnalyzers (>= 3.3.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on EnvironmentAbstractions.BannedApiAnalyzer:
Repository | Stars |
---|---|
microsoft/slngen
Visual Studio solution generator
|