Ris*_*sho 17 visual-studio-2010
我最近升级到了WIndows 7.当我尝试在VS2010中演唱组件时,我收到"访问被拒绝"错误.我以管理员身份登录,所以我很困惑.VS使用哪些服务帐户来提升其特权?
谢谢,
Risho
Ris*_*sho 37
我不知道它是Window 7还是公司政策,但我必须拥有C:\ Users\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys文件夹的所有权并给予我自己完全控制权.这纠正了这个问题.
mis*_*ika 19
解决方案:
从管理员命令提示符运行以下命令:
对于 64 位系统:
reg add HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\StrongName /v MachineKeyset /t REG_DWORD /d 0
Run Code Online (Sandbox Code Playgroud)
对于 32 位系统:
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName /v MachineKeyset /t REG_DWORD /d 0
Run Code Online (Sandbox Code Playgroud)
更改立即生效。
为什么会发生这种情况:
Visual Studio 用于对程序集进行签名的 MS 程序集链接器 ALINK (AL.EXE) 在其工作期间创建一个临时加密密钥。实际上它为此使用了一些内部 CLR 函数,问题是默认使用 CRYPT_MACHINE_KEYSET 标志。这需要提升,这就是“以管理员身份”运行 VS 的原因。
但是,幸运的是,我发现 CLR 有一个用于 StrongName 签名的全局标志,并且它存储在系统注册表下
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName
并由 DWORD 值控制
机器密钥集。
0 - 使用当前用户密钥集
1 - 使用机器密钥集(这是默认设置)
Visual Studio 是一个 32 位应用程序,使用 32 位版本的 AL.EXE 进行构建。因此,在 64 位系统上,它受注册表重定向的约束,并且标志位于键下
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\StrongName
它适用于我的 VS2019、Win10 和 .Net framework 4.8,但我没有在以前的版本上测试它。
| 归档时间: |
|
| 查看次数: |
6197 次 |
| 最近记录: |