相关疑难解决方法(0)

使用pfx和visual studio签名具有强名称的程序集

所以问题在于:我们已经决定购买代码签名证书,我们从Godaddy购买了一个p12格式的证书.

经过研究,我发现p12和pfx是不同扩展名的同一个东西,因此我将其重命名为pfx.我也有spc和p7c文件,但我不知道如何处理它们.

无论如何,我试图将我的证书添加到我的Visual Studio 2013解决方案中,这是我得到的:

  • 首先我得到一个密码提示,输入密码后我收到错误说

    "An attempt was made to reference a token that does not exist."
    
    Run Code Online (Sandbox Code Playgroud)
  • 在我第二次尝试安装pfx时,我没有得到任何提示或错误消息,但是当我构建时,我收到了错误

    "Cannot import the following key file: something.pfx 
    The key file may be password protected.
    To correct this, try to import the certificate again or 
    manually install the certificate to the Strong Name CSP with the following
    key container name: VS_KEY_33FA18307607ECFB"
    
    Run Code Online (Sandbox Code Playgroud)
  • 所以我正在使用它

    sn -i something.pfx VS_KEY_33FA18307607ECFB
    
    Run Code Online (Sandbox Code Playgroud)

    这完成没有错误,但当我再次尝试构建时,我得到完全相同的错误与相同的容器名称.

    "Cannot import the following key file: something.pfx ....
    
    Run Code Online (Sandbox Code Playgroud)

我试图使用Goddady支持推荐的signtool作为替代方案但是虽然它标志着组件它不提供我需要的强大功能.

我还试图将证书从pfx提取到snk使用

    sn -p something.pfx key.snk
Run Code Online (Sandbox Code Playgroud)

并选择延迟签名,但项目没有再次构建,错误更多. …

strongname pfx visual-studio visual-studio-2013

23
推荐指数
3
解决办法
2万
查看次数

在MSBuild,Team Build和TFS中使用PFX文件对程序集进行签名

尝试使用TFS 2010 上的Team Build(MSBuild)构建项目时出现此错误:


C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1970):
无法导入以下密钥文件:CCC.pfx.
密钥文件可能受密码保护.

要更正此问题,请尝试再次导入证书,或使用以下密钥容器名称手动将证书安装到强名称CSP:VS_KEY_C00C673BBB353901

C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1970):
导入密钥文件"CCC.pfx"已取消.


它在Visual Studio 2010中构建正常.程序集使用PFX文件进行签名.通常在Visual Studio中,我们会在第一次构建时提示输入密码,但之后再也不会...

我试过跑:

sn -i companyname.pfx VS_KEY_3E185446540E7F7A 
Run Code Online (Sandbox Code Playgroud)

正如Stack Overflow问题中建议的其他回复无法导入密钥文件'blah.pfx' - 错误'密钥文件可能受密码保护'.我已尝试按Stack Overflow问题中的建议导入个人证书存储区使用MSBuild对ClickOnce或程序集结果进行错误MSB3321签名.但一切都无济于事,仍然是同样的错误.

我该怎么做?我是否必须以某种方式将证书添加到构建服务运行的Windows帐户或类似的东西?

或者,如何在Team Build中完成构建而不使用签名?我只是想检查它编译并运行单元测试.我不需要签名.

msbuild code-signing tfsbuild

20
推荐指数
3
解决办法
2万
查看次数

使用Visual Studio 2010进行程序集签名时出错:"尝试引用不存在的标记"

我正在尝试使用我们的PFX文件在Visual Studio 2010中签署程序集.输入私钥密码后,我得到:

尝试引用不存在的令牌

我该如何解决这个问题?

clickonce code-signing visual-studio-2010

18
推荐指数
4
解决办法
7836
查看次数

MSBuild无法使用临时密钥签署ClickOnce清单(错误MSB3326和MSB3321)

我正在尝试在Windows Server计算机上构建ClickOnce Windows窗体项目(.NET 3.5/Visual Studio 2010).(努力使用Hudson CI自动化构建过程.)

为了签署ClickOnce清单,我在Visual Studio中创建了一个临时密钥temp.pfx.我可以在我的工作站上从Visual Studio成功构建和部署项目.但是当在服务器上运行MSBuild时,我收到以下错误消息:

C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1970,9):错误MSB3326:无法导入以下密钥文件:.密钥文件可能受密码保护.要更正此问题,请尝试再次导入证书或手动将证书导入当前用户的个人证书存储区.[C:.hudson \职位[...]的csproj]

C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1970,9):错误MSB3321:导入密钥文件"temp.pfx"已取消.[C:.hudson \职位[...]的csproj]

我没有运气就尝试了以下所有问题和答案:

  • Stack Overflow问题无法导入密钥文件'blah.pfx' - 错误'密钥文件可能受密码保护'

    =>就我而言,错误消息并不表示证书存储的名称,而是表示"当前用户的个人证书存储".

    =>即使以"个人"作为容器名称(sn -i temp.pfx personal)尝试接受的答案,它也无法解析密钥:

    无法解析ALiS_TemporaryKey.pfx中的PKCS#12 blob - 发生内部错误.

  • Stack Overflow问题使用MSBuild对ClickOnce或程序集进行签名导致错误MSB3321

    =>我尝试了接受的答案,但无法导入密钥文件,因为"无法访问用户配置文件,或者您导入的私钥可能需要未安装在系统上的加密服务提供程序"

    =>如果我尝试通过在Windows资源管理器中双击导入文件(RobinDotNet的建议),也会发生同样的情况

  • Stack Overflow问题在MSBuild,Team Build和TFS中使用PFX文件签署程序集

    =>这个问题的OP也没有成功解决上述两个问题,但遗憾的是,他得到的答案甚至都没有帮助我:

    以在构建计算机上运行MSBuild的用户身份登录,手动调用MSBuild,然后在出现提示时键入密码.

    =>我登录并运行msbuild myproject.sln但它甚至不会提示我输入密码.

    最终为我修复的是制作TFS Build服务在本地计算机上运行管理员的帐户.

    =>运行Hudson(更准确地说:Tomcat)的帐户已经本地管理员.我试图从"以管理员身份运行"命令行运行MSBuild,并且仍然会收到相同的错误消息.


更新:我尝试在同一台服务器上的Visual Studio中打开解决方案并构建它.我犯了同样的错误.当我尝试在项目属性的"签名"选项卡中重新导入PFX文件时,它会告诉我"密码无效".如果我尝试在我的工作站上的Visual Studio中的同一个解决方案中导入相同的文件并提供相同的密码,则会被接受.

更新2:如果我使用Visual Studio 2008生成的旧临时密钥,可以将其成功导入到我们服务器的证书库中; 我无法导入我使用Visual Studio 2010新创建的任何临时密钥.

更新3:我能够在服务器上的Visual Studio中创建一个新的"临时密钥",并在服务器和工作站上使用它来签署ClickOnce清单.我只是无法对它做出合理的解释 - 两台计算机都是64位,我在两者上都使用Visual …

msbuild clickonce hudson code-signing jenkins

10
推荐指数
1
解决办法
9783
查看次数

强大的PFX命名

我正在尝试使用也用于数字签名的PFX文件来强制命名程序集.PFX证书具有CodeSigning选项,由CA提供.

当我尝试使用它时,我收到以下错误:

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

我试图删除它并使用重新安装PFX

sn -d VS_KEY_B763CB2413AC1708
sn -i myCert.pfx VS_KEY_B763CB2413AC1708
Run Code Online (Sandbox Code Playgroud)

但那没用.我试图将证书放在证书库中 - 这也没有改变一件事.我试图以管理员身份运行Visual Studio以及从命令行执行MSBuild.

我还尝试使用本地生成的证书(有效)延迟签署程序集,然后使用它重新签名

sn -R myAssembly.dll myCert.pfx
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误:

Failed to re-sign the assembly -- Keyset does not exist
Run Code Online (Sandbox Code Playgroud)

我在使用Visual Studio项目设计器的签名页,签名程序集的ClickOnce Manifest签名和强名称程序集签名中找到了代码签名证书的要求.看起来他们都满足了,但我可能会错过一些东西.我该如何解决这个问题?

.net code-signing pfx

8
推荐指数
1
解决办法
7778
查看次数

在两个Visual Studio实例中使用签名依赖项,一个提升/管理员,一个正常

我正在运行Visual Studio 2012并在单独的解决方案中编写后端Web服务和桌面软件.由于桌面软件需要升级("作为管理员"),我需要在提升的Visual Studio实例中运行桌面解决方案.两种解决方案都包含签名库项目.

当我在Visual Studio实例中打开Web服务解决方案而不提升它时,我得到一个类似的构建错误

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

当我尝试通过这样做来解决这个问题时,它会失败并显示一条错误消息,指出密钥已经存在.

当我尝试排除然后重新包含PFX文件时没有把事情做对,但是在项目属性→登录空白时使"强名称密钥文件"下拉列表.接下来,Web服务解决方案构建,但似乎库没有签名,因为在(提升的)桌面解决方案中,构建失败,"程序集生成失败 - 引用程序集'编辑'没有强名称".

如果我尝试从Web服务解决方案中的下拉列表中再次选择PFX文件(并重新输入密码),我会得到:

导入密钥时出错
尝试引用不存在的令牌

从(提升的)桌面解决方案设置PFX文件可以正常工作,但会将我返回到正方形.

看起来,根据高程,Visual Studio会在不同的密钥库中查找可以解锁PFX的任何内容.我是否必须运行两个提升的Visual Studio实例来解决问题,或者我可以以某种方式告诉它在同一个地方查看?

.net strongname code-signing visual-studio-2012

8
推荐指数
1
解决办法
1366
查看次数

由于公共令牌不匹配,从源运行tSQLt项目失败

我正在尝试对tSQLt框架进行一些改进,并且大部分时间都已完成,但由于与我未接触过的证书相关的测试仍然很少失败,所以无法做到这一点:

 [exec] |18|[InstallExternalAccessKeyTests].[test creates correct certificate in master]                                                       |    120|Failure|
 [exec] |19|[InstallExternalAccessKeyTests].[test tSQLt can be set to EXTERNAL ACCESS after InstallExternalAccessKey executed]                 |    333|Failure|
 [exec] |20|[InstallExternalAccessKeyTests].[test tSQLtExternalAccessKey install data is signed with same key as tSQLt.clr]                    |     10|Failure|
Run Code Online (Sandbox Code Playgroud)

失败的错误是:

Expected: %publickeytoken=8c9a92de0f9c7794,%
Actual: tsqltclr, version=1.0.7216.13228, culture=neutral, publickeytoken=8d3f4bf59e4c22fd, processorarchitecture=msil
Run Code Online (Sandbox Code Playgroud)

我将尝试描述我的安装过程。

我使用以下指南安装了此框架源。但是之后我无法启动该项目,因为它失败并出现以下错误,并且整个问题的解决都在该SO帖子中完成

[exec]
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(2482,5):错误MSB3325:无法导入以下密钥文件:tSQLtOfficialSigningKey.pfx。密钥文件可能受密码保护。若要更正此问题,请尝试再次导入证书或使用以下密钥容器名称将证书手动安装到强名称CSP:VS_KEY_C20B79DE0583A5C1 [E:\ Source \ tSQLt \ tSQLtCLR \ tSQLtCLR \ tSQLtCLR.csproj] [exec]
C:\ Windows \ …

sql-server snk pfx tsqlt

8
推荐指数
1
解决办法
147
查看次数

TFS为强名称CSP构建错误证书

当我从TFS服务器运行构建时,我收到以下错误:无法导入以下密钥文件:C:\ TfsData\Build_work\fa450055\EXChecker 2015\signingKey.pfx.密钥文件可能受密码保护.要更正此问题,请尝试再次导入证书,或使用以下密钥容器名称手动将证书安装到强名称CSP:VS_KEY_EFCA4C5B6DFD4B4F

任何人都可以帮忙吗?

tfs

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