.net:" SignFile"任务意外失败。 System.IO.IOException:进程无法访问该文件

时间:2016-03-29 01:59:23

标签: .net vb.net compilation clickonce code-signing

使用VB.net 2013.在编译我的项目时,我能够编译几次,但经过几次编译后它就会停止编译并系统地抛出错误:

Error   1   "The "SignFile" task failed unexpectedly." "System.IO.IOException: The process cannot access the file" '[...]\bin\Debug\app.publish\KSDoc.exe' because it is being used by another process.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
   at Microsoft.Build.Tasks.Deployment.ManifestUtilities.PathUtil.IsPEFile(String path)
   at Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.SignFileInternal(X509Certificate2 cert, Uri timestampUrl, String signingTargetPath, Boolean certIsSha256, Boolean targetFrameworkSupportsSha256)
   at Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.SignFile(X509Certificate2 cert, Uri timestampUrl, String path)
   at Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.SignFile(String certThumbprint, Uri timestampUrl, String signingTargetPath, String targetFrameworkVersion)
   at Microsoft.Build.Tasks.SignFile.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext() KSDoc

如果我取消选项&#34;签署ClickOnce清单&#34;在Signing选项卡下,应用程序编译,但这不是一个可行的替代方案。我需要在申请表上签字。

证书也已安装且有效(即未过期)。

如果我重新启动电脑,问题似乎会消失一段时间,但之后会再次出现。

3 个答案:

答案 0 :(得分:1)

在深入研究问题之后,我运行了Process Monitor(来自Sysinternals),发现正在编译的EXE文件(在我的情况下是KSDoc.exe)被Visual Studio IDE和第三方进程访问称为 PSANHost.exe

原来PSANHost.exe属于Panda Antivirus(Panda Cloud Antivirus)。 卸载Panda后,问题就消失了。

重要的是要注意Panda没有以任何风险标记可执行文件;显然它只是在错误的时间锁定文件。 还值得一提的是“禁用”AV并不能解决问题。您必须从PC上卸载它。

到目前为止,一切都很顺利。 (回到MS Security Essentials)

答案 1 :(得分:1)

我有同样的问题,我努力找到它,直到今天早上我看到这篇文章...这也是Panda锁定文件,我之前遇到过与Avast相同的问题。

答案 2 :(得分:1)

是的,熊猫是事业。 但是,如果您输入将项目文件存储在Panda的例外列表中的文件夹,则不会再出现问题。