C# 使用新证书更新ClickOnce应用程序使Windows认为这是一个不同的应用程序
我已经看到过类似的帖子,但没有真正解决我的问题:C# 使用新证书更新ClickOnce应用程序使Windows认为这是一个不同的应用程序,c#,winforms,visual-studio-2017,clickonce,.net-4.6.2,C#,Winforms,Visual Studio 2017,Clickonce,.net 4.6.2,我已经看到过类似的帖子,但没有真正解决我的问题: -用户得到一个我没有得到的错误 -我不能更新我的证书,因为它不是测试证书 -这篇文章非常接近,但答案并不能解决我的问题,可能是因为上面提到的这篇文章已经有9年的历史了,并且针对的是不同版本的.NET 我试着问这个问题,但只得到了似乎是自动的回答,所以我会在这里试试我的运气 我在大约一年前购买了一个证书,我一直使用它来签署ClickOnce部署的WinForms应用程序。由于它即将过期,我购买了一个新的,使用的数据与以前相同(尽管我无意中使用了
- -用户得到一个我没有得到的错误
- -我不能更新我的证书,因为它不是测试证书
- -这篇文章非常接近,但答案并不能解决我的问题,可能是因为上面提到的这篇文章已经有9年的历史了,并且针对的是不同版本的.NET
MyApplication.exe.manifest
),并注意到publicKeyToken
在assemblyIdentity
元素中有所不同:
<asmv1:assemblyIdentity name="MyApplication.exe" version="1.2.3.4" publicKeyToken="44de2eab9d920cfd" language="neutral" processorArchitecture="amd64" type="win32" />
vs
另外,publisherIdentity
元素包含不同的邮政编码,因为我错误地在新旧证书上使用了不同的邮政编码(尽管我确实要求支持人员在任何地方使用相同的数据,无论我键入什么,因为我从同一供应商处购买了这两种数据)。当我比较使用相同证书的两个版本时,这两个差异并不存在
所以我的问题可以简化为两个问题:
publicKeyToken
是否确定了应用程序的身份,如果它们不同,Windows会将它们视为单独的应用程序(这将解释此处发生的情况)publisherIdentity
的PostalCode
属性是否用于生成publicKeyToken
(这可以解释为什么我的publicKeyToken不同)如果两者都是肯定的,那么至少我会知道为什么我会有这个问题,我想购买一个带有正确邮政编码的新证书可能会解决这个问题。但我不想再购买一个证书,只是为了看看它是否能修复,所以我想知道是否有人对此有一些经验,或者对ClickOnce这方面的工作有一些见解。我还没有读过所有这些,但标题似乎很有希望:@Flydog57是的,我看到了,但在这里似乎不起作用。我在我的帖子中也提到过。哦,公钥令牌只是与用于签名程序集的私钥相关联的公钥的缩写版本。查看@ericlippert对此问题的回答,了解更多信息:。你的邮政编码一点也不涉及。而且。。。您是否询问过您购买证书的CA是否可以续订您的初始证书(而不是获得一个全新的证书)。一个简单的搜索结果是:,在我看来,至少有一个CA会根据同一个密钥向你颁发一个新证书(有新的日期),pairI没有阅读所有这些,但标题似乎很有希望:@Flydog57是的,我看到了,但在这里似乎不起作用。我在我的帖子中也提到过。哦,公钥令牌只是与用于签名程序集的私钥相关联的公钥的缩写版本。查看@ericlippert对此问题的回答,了解更多信息:。你的邮政编码一点也不涉及。而且。。。您是否询问过您购买证书的CA是否可以续订您的初始证书(而不是获得一个全新的证书)。一个简单的搜索结果是:,在我看来,至少有一个CA会根据相同的密钥对向您颁发新证书(带有新日期)
<asmv1:assemblyIdentity name="MyApplication.exe" version="1.2.3.4" publicKeyToken="6fec920a5f1bbb2b" language="neutral" processorArchitecture="amd64" type="win32" />