标签: sn.exe

找不到sn.exe来签署程序集

我看了看C:\Program Files\Microsoft.NET,我看不到任何SN.exe文件.

我安装了.NET 3.5运行时; 还不够吗?

c# msbuild sn.exe

49
推荐指数
4
解决办法
7万
查看次数

强名称sn.exe:无法安装密钥对 - 对象已存在

我的机器上有两个不同版本的同一个项目.一个来自代码中继,另一个来自代码分支.这些项目使用.pfx键来启用强命名.当我第一次尝试编译项目的trunk版本时,我收到以下错误:

无法导入以下密钥文件:sgKey.pfx.密钥文件可能受密码保护.要更正此问题,请尝试再次导入证书,或使用以下密钥容器名称手动将证书安装到强名称CSP:VS_KEY_45891C38BC1BB345

要解决此问题,我使用sn.exe和以下命令:

sn -i sg Key.pfx VS_KEY_45891C38BC1BB345

这解决了trunk项目的问题,然后愉快地构建.

但是,当我尝试构建项目的分支版本时,我收到相同的初始错误(具有相同的密钥容器名称),当我尝试使用sn.exe安装证书时(不出意外)给出以下错误:

无法安装密钥对 - 对象已存在

这是有道理的,因为我在sn命令上使用了相同的infile容器,但我想要了解的是:

  1. 如果此对象已存在,为什么项目无法构建,因为看起来已经安装了证书.
  2. 我如何解决这个问题(例如,我可以卸载然后重新安装吗?如果是这样,怎么做?)

.net certificate duplicates sn.exe strong-named-key

29
推荐指数
2
解决办法
1万
查看次数

sn.exe失败并显示"拒绝访问"错误消息

当我使用强名称工具创建一个新的密钥来签署.NET程序集时,我得到一个Access is Denied错误消息.这在Windows XP机器上运行得很好,但它在我的Vista机器上不起作用.

PS C:\users\brian\Dev\Projects\BELib\BELib> sn -k keypair.snk

Microsoft (R) .NET Framework Strong Name Utility  Version 3.5.21022.8
Copyright (c) Microsoft Corporation.  All rights reserved.

Failed to generate a strong name key pair -- Access is denied.
Run Code Online (Sandbox Code Playgroud)

是什么导致了这个问题,我该如何解决?


您是否以管理员身份运行PowerShell或命令提示符?在您习惯用户访问控制或关闭用户访问控制之前,我发现这是第一个查看的地方.

是的我尝试以管理员身份运行PS和常规命令提示符.出现相同的错误消息.

.net strongname sn.exe

13
推荐指数
1
解决办法
6633
查看次数

在Sn.exe中自动输入密码

我需要创建post build事件来执行以下操作:

sn -i MyKey.pfx MyKeyContainerName
tlbimp $(ConfigurationName)\MyCom.tlb /out:$(ConfigurationName)\NETMyCom.dll /keycontainer:MyKeyContainerName
sn -d MyKeyContainerName
Run Code Online (Sandbox Code Playgroud)

当Visual Studio执行第一个语句时,它需要一个密码并等待用户指定并失败.

Microsoft(R).NET Framework强名称实用程序版本2.0.50727.42版权所有(c)Microsoft Corporation.版权所有.

输入PKCS#12密钥文件的密码:无法解析mykey.pfx中的PKCS#12 blob - 句柄无效.

我尝试使用sn命令行参数指定密码,但我看不到这样做的方法.

请帮忙.

此致,希尔米.

c# signing sn.exe

7
推荐指数
2
解决办法
6835
查看次数

运行sn.exe需要哪些Windows SDK部件

我想运行sn.exe,以便能够在服务器中运行延迟签名的项目.如果我安装整个Windows SDK一切运行顺利,但需要哪个部分SDK?我问,因为整个下载是460Mb,可能安装我不需要的东西.

.net winapi delay-sign sn.exe

5
推荐指数
1
解决办法
682
查看次数

在NETFX 4.0工具之外运行sn.exe时遇到问题

有没有人弄清楚为什么.net 4.0的sn.exe崩溃如果在外面运行崩溃C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\ ?(使用Windows XP,32位)

Visual Studio 2010工作得很好,sn工作在NETFX 4.0工具中(直接调用或在PATH上调用).

.net 3.5版本(来自..\Bin)工作正常,可以移动.

我只是试图获得一个自动构建,但似乎sn.exe需要住在它的位置......这可能是什么?我错过了一些明显的东西吗

.net .net-4.0 sn.exe

4
推荐指数
1
解决办法
1274
查看次数

如何在ClickOnce应用程序的无签名程序集项目中设置LARGEADRESSAWARE?

我有一个应用程序与接下来的两个后编译命令:

call editbin /LARGEADDRESSAWARE $(TargetPath)
call editbin /LARGEADDRESSAWARE $(ProjectDir)obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)
Run Code Online (Sandbox Code Playgroud)

并且工作正常.

但是当我发布到服务器时,ClickOne应用程序没有错误,但是当我尝试在客户端安装时,文件的哈希值与清单中计算的值不同.

我试着使用下一个命令:

sn -Ra $(ProjectDir)obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName) PublicPrivateKeyFile.snk
Run Code Online (Sandbox Code Playgroud)

但不起作用,它显示下一条消息:

app.exe不代表任何强名称程序集.

我想这是因为我的所有项目都有"签署程序集"选项,并带有false值.在使用LARGEADDRESSAWARE之前,ClickOnce应用程序运行正常.

为所有项目设置"签署程序集"选项的真值是必要的,还是有任何方法可以为此选项使用带有false值的LARGEADDRESSAWARE?

编辑:

Mark Sowul的解决方案工作正常:我还在AfterBuild中添加了下一行以检查AfterCompile是否正常工作

call "$(VS110COMNTOOLS)vsvars32.bat"
dumpbin /headers "$(TargetPath)" > "$(TargetPath).info"
findstr "(>2GB)" "$(TargetPath).info"
set BUID_ERRORLEVEL=%ERRORLEVEL%
del "$(TargetPath).info"
if [%BUID_ERRORLEVEL%]==[0] echo EXE program updated to use more than 2GB
if [%BUID_ERRORLEVEL%]==[1] echo ERROR: EXE PROGRAM WAS NOT UPDATED TO USE MORE THAN 2GB
set ERRORLEVEL=%BUID_ERRORLEVEL%
Run Code Online (Sandbox Code Playgroud)

c# deployment clickonce sn.exe

4
推荐指数
1
解决办法
643
查看次数

如何导入在.NET中使用sn.exe生成的.snk文件?

我用这个命令创建了一个密钥文件:


 sn.exe -k 2048 Build.snk

我想用.NET阅读这个密钥.我无法找到任何关于.snk格式的文档,所以我想知道C#中是否有一种读取.snk文件的方法?

我提出问题的原因是将.snk文件用于签署程序集以外的目的.作为下面的答案之一,.snk文件的目的实际上只是用于签署程序集.

.net c# encryption sn.exe

3
推荐指数
1
解决办法
5546
查看次数

导入模块上的强名称验证失败

我无法导入程序集,据说是因为强名称验证失败,尽管即使我注册了不检查的程序集,也会发生这种情况。有人可以发现我在这里做错了吗?

以下是抄录。作为参考,sn.exe 的开关是:

  • -v:验证签名。
  • -Vr:注册程序集以进行验证跳过。

    PS C:\temp> .\sn.exe -v .\my.dll

    Microsoft (R) .NET Framework 强名称实用程序版本 3.5.30729.1 版权所有 (c) Microsoft Corporation。版权所有。

    程序集 '.\my.dll' 有效

    PS C:\temp\Cmdlets> Import-Module .\my.dll Import-Module :无法加载文件或程序集“my,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。强名称验证失败。(来自 HRESULT 的异常:0x8013141A)在 line:1 char:14

    • 导入模块 <<<< .\Microsoft.Rtc.Management.Core.dll
      • CategoryInfo : NotSpecified: (:) [Import-Module], FileLoadException
      • FullQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell .Commands.ImportModuleCommand

    PS C:\temp\Cmdlets> .\sn.exe -Vr *

    Microsoft (R) .NET Framework 强名称实用程序版本 3.5.30729.1 版权所有 (c) Microsoft Corporation。版权所有。

    为程序集 ' , '添加了验证条目

    PS C:\temp\Cmdlets> Import-Module .\my.dll Import-Module :无法加载文件或程序集“my,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。强名称验证失败。(来自 HRESULT 的异常:0x8013141A)在 line:1 char:14

    • 导入模块 <<<< .\Microsoft.Rtc.Management.Core.dll
      • CategoryInfo : …

.net strongname sn.exe import-module

2
推荐指数
1
解决办法
5750
查看次数