.net项目编译时,无法在证书存储区中找到清单签名证书

来源:互联网 发布:node.js微服务 豆瓣 编辑:程序博客网 时间:2024/05/01 21:11

编译.net项目时,出现无法找到清单签名证书的状况,用方法3解决了。用方法1和2只能顺利编译,但不能发布。

 

最直接有效的方法是1,2和1效果一样只不过是处理的步骤多几步:

1.工程->属性->签名->为ClickOnce清单签名
2.用记事本打开对应csproj文件。将
<SignManifests>true</SignManifests>改为
<SignManifests>false</SignManifests>.

3.在vs2005中出现“无法在证书存储区中找到清单签名证书”,解决办法是用记事本打开项目的.csproj文件,删除类似以下xml就能顺利通过编译了
<ManifestCertificateThumbprint>B531F2CF222748C5E29308FC2247704827D1EA8C</ManifestCertificateThumbprint>
<ManifestKeyFile>xxxx_TemporaryKey.pfx</ManifestKeyFile>
<GenerateManifests>true</GenerateManifests>
<SignManifests>true</SignManifests>
<PublishUrl>D:/xxx/bin/</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<CreateWebPageOnPublish>false</CreateWebPageOnPublish>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<BootstrapperEnabled>true</BootstrapperEnabled>

 

 

出现以上原因可能是:clickone自动生成的证书过期了(有效期只有一年,且不能修改延长),
若是重新生成新的证书客户端自动更新将失败。你可以在程序发布前自己生成证书,把时间延长个若干年。采用MakeCert.exe等工具稍加改动即可