编译.net项目时,出现无法找到清单签名证书的状况,用方法3解决了。用方法1和2只能顺利编译,但不能发布。
<wbr></wbr>
最直接有效的方法是1,2和1效果一样只不过是处理的步骤多几步:
1.工程->属性->签名->为ClickOnce清单签名
<wbr></wbr>
2.用记事本打开对应csproj文件。将
<SignManifests>true</SignManifests>改为
<SignManifests>false</SignManifests>.
<wbr></wbr>
<wbr></wbr>
3.在vs2005中出现“无法在证书存储区中找到清单签名证书”,解决办法是用记事本打开项目的.csproj文件,删除类似以下xml就能顺利通过编译了
<ManifestCertificateThumb<wbr>print>B531F2CF222748C5E29308FC<wbr>2247704827D1EA8C</ManifestCertificateThumb<wbr>print><br>
<ManifestKeyFile>xxxx_TemporaryKey.pfx</ManifestKeyFile><br>
<GenerateManifests>true</GenerateManifests><br>
<SignManifests>true</SignManifests><br>
<PublishUrl>D:\xxx\bin\</PublishUrl><br>
<Install>true</Install><br>
<InstallFrom>Disk</InstallFrom><br>
<UpdateEnabled>false</UpdateEnabled><br>
<UpdateMode>Foreground</UpdateMode><br>
<UpdateInterval>7</UpdateInterval><br>
<UpdateIntervalUnits>Days</UpdateIntervalUnits><br>
<UpdatePeriodically>false</UpdatePeriodically><br>
<UpdateRequired>false</UpdateRequired><br>
<MapFileExtensions>true</MapFileExtensions><br>
<CreateWebPageOnPublish>false</CreateWebPageOnPublish><br>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion><br>
<IsWebBootstrapper>false</IsWebBootstrapper><br>
<BootstrapperEnabled>true</BootstrapperEnabled></wbr></wbr></wbr>
<wbr></wbr>
出现以上原因可能是:clickone自动生成的证书过期了(有效期只有一年,且不能修改延长),
若是重新生成新的证书客户端自动更新将失败。你可以在程序发布前自己生成证书,把时间延长个若干年。采用MakeCert.exe等工具稍加改动即可