我正在编写一个Roslyn 代码分析器,我想确定一个async方法是否不采用CancellationToken,然后建议添加它的代码修复:
//Before Code Fix:
public async Task Example(){}
//After Code Fix
public async Task Example(CancellationToken token){}
Run Code Online (Sandbox Code Playgroud)
我已经DiagnosticAnalyzer通过检查 将连接起来以正确报告诊断methodDeclaration.ParameterList.Parameters,但我找不到用于将 a 添加Paramater到的Roslyn APIParameterList里面CodeFixProvider。
这是我到目前为止所得到的:
private async Task<Document> HaveMethodTakeACancellationTokenParameter(
Document document, SyntaxNode syntaxNode, CancellationToken cancellationToken)
{
var method = syntaxNode as MethodDeclarationSyntax;
// what goes here?
// what I want to do is:
// method.ParameterList.Parameters.Add(
new ParameterSyntax(typeof(CancellationToken));
//somehow return the Document from method
} …Run Code Online (Sandbox Code Playgroud) 我有几个类,它们的字段仅通过反射分配或使用。因此,这些字段会导致以下警告:
CS0169: The field [...] is never used
CS0649: Field [...] is never assigned to, and will always have its default value 0
Run Code Online (Sandbox Code Playgroud)
解决方案是在所有这些类上使用 SuppressMessageAttribute,但这似乎不干净,因为相关类已经具有自定义属性。
我更喜欢这样的东西:
[KeepMyFields]
class SomeClass
{
int usedField;
}
class KeepMyFieldsAttribute : System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
{
// [...]
}
Run Code Online (Sandbox Code Playgroud)
但是,SuppressMessageAttribute 是密封的。除了向每个相关类添加代码片段之外,我还有什么其他选择?自定义 MSBuild 任务是否合适,或者是否有更简单的方法?
我有由具有源代码巨大行一个基于Java的应用程序(〜1M)。现在我使用詹金斯与声纳浇道-2.4来运行代码覆盖率和测试用例count.I分析已经从升级服务器sonarqube5.4到6.3.1。之前升级这项工作需要9hrs完成整个分析(仍然很长时间但很好)但是在升级到sonarqube-6.3.1相同的工作后需要13hrs完成相同的分析。
我如何至少在我更早的时候缩短分析时间9hr?
编辑
这是我JAVA_OPTS的sonarqube-6.3.1例子
sonar.web.javaOpts=-Xmx6G -Xms2G -XX:MaxPermSize=1G -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true
Run Code Online (Sandbox Code Playgroud)
可用硬件:
$lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 26
Stepping: 5
CPU MHz: 1596.000
BogoMIPS: 3999.44
Virtualization: VT-x
L1d cache: …
code-analysis static-analysis jenkins sonarqube sonarqube-scan
目前,在使用为我们的项目定义的自定义代码分析规则集配置 ASP.Net Core 2.0 应用程序后,我收到 CA0055 和 CA0052 代码分析错误(使用 Visual Studio 2017 和使用 MSBuild 命令)。通过提供的不同解决方案尝试了不同的方法来解决这些错误,但没有运气。请帮助我们解决这些代码分析错误...
以下是错误详情
MSBUILD:错误:CA0055:无法识别“D:\Source\Temp\WebClient\Business\bin\Debug\netco reapp2.0\Business.dll”的平台。[D:\Source\Temp\WebClient\Business\Business.csproj] MSBUILD:错误:CA0052:未选择任何目标。[D:\Source\Temp\WebClient\Business\Business.csproj] 代码分析完成 -- 2 个错误,0 个警告
谢谢,维努马达夫。
代码分析:
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_HISTORY_TYPE,
&CAssignHistoryDlg::OnTcnSelchangeTabHistoryType)
Run Code Online (Sandbox Code Playgroud)
警告 C26454:
算术溢出:'-' 操作在编译时 (io.5) 产生负的无符号结果。
的定义TCN_SELCHANGE是:
#define TCN_FIRST (0U-550U)
#define TCN_SELCHANGE (TCN_FIRST - 1)
Run Code Online (Sandbox Code Playgroud)
我看不出我还能做什么!
我的项目中有以下命名空间。
我想禁用特定命名空间上的特定警告(比如 Project.ViewModels)。我可以通过在GlobalSuppression.cs
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Formatting", "RCS1057:Add empty line between declarations.", Justification = "<Pending>", Scope = "type", Target = "~T:Project.ViewModels.MainViewModel.cs")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Formatting", "RCS1057:Add empty line between declarations.", Justification = "<Pending>", Scope = "type", Target = "~T:Project.ViewModels.TreeViewModel.cs")]
Run Code Online (Sandbox Code Playgroud)
我试图Scope从type改为namespace,namespaceanddescendants但没有奏效。
[assembly: SuppressMessage("Formatting", "RCS1057:Add empty line between declarations.", Justification = "<Pending>", Scope = "namespace", Target = "~T:Project.ViewModels")]
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?我正在使用 Visual Studio 2017。
使用 Visual studio 2019发布 ASP.NET Core 3 API netcoreapp3.1项目时,也会发布多个代码分析 dll。此外,这些 dll 还以 13 种语言发布,外加英文版本。
如何防止 Visual Studio 在生产服务器上发布代码分析 dll(包括英文版本)?
这些 dll 是:
Microsoft.CodeAnalysis.CSharp.resources.dll
Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll
Microsoft.CodeAnalysis.resources.dll
Microsoft.CodeAnalysis.Workspaces.resources.dll
Run Code Online (Sandbox Code Playgroud)
我在 Window 10 上使用 Microsoft Visual Studio Enterprise 2019 版本 16.4.5。
发布配置为:
Configuration: Release x64
Target framework: netcoreapp3.1
Deployment mode: Framework dependent
Target runtime: win-x64
File Publish Options:
Produce single file: no
Enable ReadyToRun compilation: yes
Delete all existing files prior to publish: yes
Run Code Online (Sandbox Code Playgroud) dll code-analysis publishing visual-studio-2019 netcoreapp3.1
有谁知道这个错误:代码分析失败,出现异常:org.jetbrains.kotlin.utils.KotlinExceptionWithAttachments:意外的2个声明?
感谢:D
error-handling code-analysis compiler-errors jetbrains-ide android-studio
我在我的工作流程中广泛依赖此功能,但由于某些原因,此功能现在警告我来自 的所有问题node_modules,这显然我对此不感兴趣。
如何在没有nodes_modules文件夹的情况下让 WebStorm 分析我的整个项目问题?
我针对我创建的对象运行了VS 2008代码分析工具,并收到了以下建议......
警告147 CA1021:Microsoft.Design:考虑一种不要求'returnValue'为out参数的设计.
我发现"out"参数相当有用,并没有意识到它们被认为是一种不受欢迎的设计实践.我想知道是否有人可以了解我收到此警告的原因?如果这是不好的做法?为什么?什么是好的做法?
我很感激任何建议.
code-analysis ×10
c# ×4
roslyn ×2
asp.net-core ×1
c++ ×1
compilation ×1
dll ×1
jenkins ×1
mfc ×1
msbuild-task ×1
publishing ×1
sonarqube ×1
treecontrol ×1
tsconfig ×1
typescript ×1
warnings ×1
webstorm ×1