当前位置: 首页 > 知识库问答 >
问题:

加固建筑。NET核心项目

邢博涛
2023-03-14

我正在尝试运行以下powerShell脚本,以便使用Fortify扫描我的解决方案(.NET Core 2.0):

$SolutionFilePath = "C:\Repositories\MyProject"
$SolutionFileName = "MyProjectToTest"
$SSCFPRFileName = "MyProjectToTest.fpr"
$BuildIdName = "MyProjectToTest"


$path = "D:\Fortify"
If(!(test-path $path))
{
   New-Item -ItemType Directory -Force -Path $path
}

cd \
cd "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin"

sourceanalyzer -b $BuildIdName -clean
sourceanalyzer -b $BuildIdName msbuild "$SolutionFilePath\$SolutionFileName.sln" 
sourceanalyzer -b $BuildIdName -scan -f "$path\$SSCFPRFileName"

exit 0

在我的本地机器上一切都很好。

但当我试图在服务器上运行它作为TeamCity(TeamCity Enterprise 2018.2.1(build 61078))中的构建步骤时,我遇到了一个错误:

Microsoft (R) Build Engine version 16.0.461+g6ff56ef63c for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

MSBUILD : error MSB1021: Cannot create an instance of the logger. Could not load file or assembly 'Microsoft.Build.Utilities, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Switch: C:\Program Files\HPE_Security\Fortify_SCA_and_Apps_17.20\Core\lib\FortifyMSBuildTouchless.dll

我在本地和服务器中使用相同版本的Fortify(Fortify静态代码分析器17.20.0183(使用JRE 1.8.0_144))。

在服务器和本地计算机中,我安装了Visual Studio 2019和的构建工具。Net核心SDK。

我尝试了不同版本的MsBuild(14, 15, 16)和dotnet.exedevenv.exe,并安装了PowerShell Core。我得到了同样的错误。

我也可以在同一个服务器上运行脚本。NETFramework项目成功,唯一的变化是我使用了不同的路径:

cd "C:\Windows\Microsoft.NET\Framework64\v4.0.30319"

强化17.20似乎不支持。网络核心2。十、 当我添加

-dotnet-core-version 2.0

我收到一个错误(在本地和服务器中):

[error]: Invalid parameter 2.0 for command line argument -dotnet-core-version

但是有1。X是可以的,那么为什么相同版本的fortify在本地可以正常工作,但在服务器上却不行呢?

有什么问题。NETCore项目?任何想法?

共有1个答案

阎涵忍
2023-03-14

经过一番搜索,我找到了这个,它对我很好:

$SolutionFilePath = "C:\Repositories\MyProject"
$SolutionFileName = "MyProjectToTest"
$SSCFPRFileName = "MyProjectToTest.fpr"
$BuildIdName = "MyProjectToTest"


$path = "D:\Fortify"
If(!(test-path $path))
{
   New-Item -ItemType Directory -Force -Path $path
}

cd \
cd "$SolutionFilePath"

sourceanalyzer -b $BuildIdName -clean
sourceanalyzer -b $BuildIdName -libdirs **/* **/* 
sourceanalyzer -b $BuildIdName -scan -f "$path\$SSCFPRFileName"

exit 0

没有msbuild没有其他命令只需导航到解决方案文件夹并在没有任何额外命令的情况下运行它。

 类似资料:
  • 我有一个<代码>。NET Core项目我试图运行Fortify扫描。据我所知,目前还没有VS2017 Fortify插件可用,但我很好奇是否可以使用围绕插件工作,仍然执行Fortify扫描?如果是这样,我怎么能把它合并到我的清洁、翻译和扫描命令中? 当前Fortify版本:

  • 用于控制台应用程序项目目标。NETCore1.0,我不知道如何获得一个。exe在生成过程中输出。该项目在调试中运行良好。 我已经尝试过发布这个项目,但也不起作用。这是有意义的,因为EXE文件是特定于平台的,但必须有一种方法。我的搜索只找到了对旧版本的引用。使用project的NET核心版本。json。 每当我构建或发布时,这就是我得到的全部:

  • .NET核心和ASP.NET核心到底有什么区别?

  • 我正试图建立一个项目。NET 5.0使用Azure运营模式管道构建,我收到了此错误 有人知道Azure DevOps管道是否支持构建。NET5.0代码?

  • 我正在做一个我命名为“主项目”的项目。我至少有10个不同的小项目在那里,这个项目可能会增长。我对所有这些项目只有一个自信,因为所有这些项目都只使用一个dotnet核心web应用程序来进行推广。 例如,假设我有一个名为的项目和一个名为的项目。有三个不同的endpoint,分别名为、、、和。这两个不同的项目将出现在一个大摇大摆的UI中,如下所示: 我想做的是在一个dotnet核心web项目中设置多个不

  • 我读过关于.NET标准和.NET核心之间的区别,但我真的不知道区别是什么,也不知道什么时候选择.NET标准库项目,什么时候选择.NET核心库项目。