开始出现错误:签名程序集时出错--未知错误(8013141c)。

11

Visual Studio 2013 - 开始收到错误消息:"Error signing assembly -- Unknown error (8013141c)",当编译时。一些项目使用snk文件进行签名。它以前可以编译并已经在生产中使用了相当长的时间。


1
请注意:其中一些项目需要签名。没有签名我无法部署。 - Vin
请查看:https://social.msdn.microsoft.com/Forums/en-US/c92b79a0-109a-4085-94db-a5f5420c2457/alink-error-al1078-error-signing-assembly-unknown-error-8013141c?forum=csharplanguage - Gusman
签名证书可能已过期吗? - pmcilreavy
这个回答解决了你的问题吗?签名程序集访问被拒绝 - oleksa
4个回答

23

这是一个权限问题。为了解决这个错误,请打开以下文件夹:“C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys”,并给你的用户(你用来登录电脑并在Visual Studio上工作的账户)完全控制权。你可以右键点击MachineKeys文件夹,选择属性,在安全选项卡中确保当前用户拥有完全控制。


3
谢谢,我修改了位于以下位置的MachineKeys文件夹:C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys。为了安全起见,我重启了服务器并确保VS以“管理员”身份打开。 - Vin
1
很奇怪它需要您的实际用户。管理员在那里拥有完全控制权,我也是该计算机上的管理员。另一个奇怪之处就是,它可能会在没有明显原因的情况下突然开始发生,就像我的情况一样。 - James_UK_DEV
仍然在执行此操作后遇到错误吗?那么这是唯一解决此类错误的方法吗?还有其他解决方法吗? - Nguyễn Đức Tâm
你尝试过以下解决方案来为此文件夹添加完全权限吗?C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys - Jon
这对我有用!运行TFS构建代理的服务帐户没有MachineKeys文件夹的完全控制权限。对于Windows 10,该文件夹位于C:\ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys。我不知道为什么签名需要完全控制,但我首先尝试授予服务帐户只读访问权限,但失败了。完全控制起作用了。 - bargz
它不需要完全控制权限。对我来说,只要在“目录”上授予“用户”组“更改”权限就足够了。不知道为什么这是必要的。 - undefined

6

以管理员身份运行Visual Studio。


1
特别是如果这种垃圾突然出现在以前可以编译的构建中,而且当您的用户已经拥有所有必要的MachineKeys权限时。 - Liz

4

在Mangist的基础上,他的解决方案对我有用,但是我使用的是Windows 10,因此MachineKeys位于不同的文件夹中。我给自己完全控制(可能只需要读/写)以下文件夹:

C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys

某些密钥会显示访问被拒绝,但是一旦完成该过程,我就不再看到“签名程序集错误”的问题了。


-4

打开项目属性,进入签名选项卡,取消“对程序集进行签名”复选框,并重新构建。


1
但是如果 OP 想要对这个程序集进行签名呢?这不是一个解决方案,这只是避免了必要的任务。 - Glen Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接