编译.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等工具稍加改动即可