看雪怎么回事,分享知识不加雪币还扣雪币,搞不懂。
error MSB4018: “SignTask”解决办法。网上搜不到办法的,足以证明我是原创。
在安装wdk包的时候会俏俏生成一个一天过期不更新的测试证书并安装在个人证书里面。
通过cmd -> certmgr.msc可以看到。
在配置->Driver Signing SignMode SignMode改为Off,全部关掉都是没效果的。猜测是社区版的原因。社区版只用于开源和学生用。
我尝试换一个签名证书还是会签测试名。所以我会认为是社区版的原因。
网上找不到解决办法,只有自己想办法。
首先我通过certmgr.msc把测试证书删掉,编译出错。
error MSB4018: “SignTask”任务意外失败。
双击进入错误。
<SignTask Condition="'@(DriverSign->Count())' > 0"
SignMode ="$(SignMode)"
BuildingInIDE ="$(BuildingInsideVisualStudio)"
ProjectFileName ="$(MSBuildProjectName) "
Sources ="@(DriverSign)"
DriverType ="$(DriverType)"
GenerateCertificate ="$(GenerateTestCertificate)"
CertificateStoreName ="$(CertificateStoreName)"
SubjectName ="$(SubjectName)"
TrackerLogDirectory ="$(DriverTestSignTrackerLogDirectory)"
TestCertificate ="$(TestCertificate)"
Password ="$(Password)"
OSList ="$(Inf2CatWindowsVersionList)"
Inf2CatToolPath ="$(Inf2CatToolPath)"
UseDebugLibraries ="$(UseDebugLibraries)"
UserRootDirectory ="$(UserRootDir)"
Platform ="$(Platform)"
SignedOutputDirectory ="$(OutDir)"
TargetOS ="$(TargetVersion)"
CertificateToExport ="$(CertificateOutputPath)"
FileDigestAlgorithm ="%(DriverSign.FileDigestAlgorithm)"
AdditionalOptions ="%(DriverSign.AdditionalOptions)"
DiagnosticMode ="$(DiagnosticMode)"
TLogReadFiles ="@(DriverSignTLogReadFiles)"
TLogWriteFiles ="@(DriverSignTLogWriteFiles)"
ToolExe ="$(DriverSignToolExe)"
ToolPath ="$(DriverSignToolPath)"
TrackFileAccess ="$(TrackFileAccess)"
MinimalRebuildFromTracking ="$(DriverTestSignMinimalRebuildFromTracking)"
ToolArchitecture ="$(DriverSignToolArchitecture)"
TrackerFrameworkPath ="$(DriverSignTrackerFrameworkPath)"
TrackerSdkPath ="$(DriverSignTrackerSdkPath)">
</SignTask>
文件头注释了一段话让我意识到这个文件的重要性。
<!--
***********************************************************************************************
WindowsDriver.Common.targets
WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
created a backup copy. Incorrect changes to this file will make it
impossible to load or build your projects from the command-line or the IDE.
This file defines the steps/targets required to build driver projects.
Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
机翻就是
警告:除非您了解msbuild,并且已创建备份副本。对该文件的错误更改将使其无法从命令行或IDE加载或构建项目。此文件定义了构建驱动程序项目所需的步骤/目标。
版权所有(c)Microsoft Corporation。版权所有。
-->
一行一行看,看到228行,发现一个东西。不同版本行数可能不一样。
<!-- *******************************************************************************************
Set signing-related properties
******************************************************************************************* -->
<PropertyGroup>
<SignMode Condition="'$(SignMode)' == '' and '$(EnableTestSign)' == 'true'">TestSign</SignMode>
</PropertyGroup>
意思大概就是说没填 和 启动测试签名 都会 SignMode Condition = TestSign
SignMode我在项目里设置为OFF是没效果的,说明关键点是EnableTestSign。
EnableTestSign没找到,那就一直是'true'。所以SignMode一直就是TestSign。
TestSign改为Off
<SignMode Condition="'$(SignMode)' == '' and '$(EnableTestSign)' == 'true'">Off</SignMode>
直接保存,编译通过。再也没有测试签名的感觉真好。
野牛看见猎狗会跑,狮王会追着猎狗咬。
【原创】转载请注明链接。打这几个字的感觉真好。
[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。