我正在努力在.NET 4.5上部署ClickOnce应用程序构建这是事实:
但是,无论我做什么,当我使用“立即发布”按钮实际发布ClickOnce应用程序时,所有文件都会被发布,但是当我下载“ Setup.exe”时,它总是说“ Unknown Publisher “。
关于我在做什么错的任何想法?我已经对此进行了数周的研究,并且已经阅读了足够的内容,以至于我在“正确”地进行了操作,但是我只是必须缺少一些小复选框或设置,或者是某些东西。
感谢任何帮助。
-身高
要用组织名称替换“未知发布者”,您必须在.csproj或.vbproj文件中添加一些XML。在关闭</Project>
标记之前,您需要调用SignTool.exe,我已将其手动复制到解决方案的主Bin文件夹中(如果没有,它是Windows SDK的一部分)。这是我的样子:
<!-- This section is used for code-signing the application. This should not be confused with manifest signing or with strong-name assembly signing, which can both be done from the Visual Studio interface. -->
<Target Name="SignOutput" AfterTargets="CoreCompile">
<PropertyGroup>
<TimestampServerUrl>http://timestamp.verisign.com/scripts/timstamp.dll</TimestampServerUrl>
<ApplicationDescription>A.Franklin's Awesome App</ApplicationDescription>
<SigningCertificateCriteria>/sha1 0c0ff5e29404b7d78q2517f487da0b1a0912c4da</SigningCertificateCriteria>
</PropertyGroup>
<ItemGroup>
<SignableFiles Include="$(ProjectDir)obj\$(ConfigurationName)\$(TargetName)$(TargetExt)" />
</ItemGroup>
<Exec Command=""$(ProjectDir)..\Bin\SignTool" sign $(SigningCertificateCriteria) /d "$(ApplicationDescription)" /t "$(TimestampServerUrl)" "%(SignableFiles.Identity)"" />
</Target>
要获取我已经在计算机上安装的证书的哈希码(上面的“ 0c0ff5 ...”),我>]
Ran certmgr.msc和已打开的证书–当前用户>个人>证书
双击我想要的证书,然后单击详细信息选项卡
- 使用Ctrl-C复制Thumbprint的值(看起来像“ 0c f0 f5 ...”),
- 除了第一个字符
。此文本框中有一个不可见的字符,该字符会与第一个字符一起复制,以后会弄乱您的脚本。因此,手动键入第一个字符(在这种情况下为“ 0”),然后从该对话框中粘贴值。如果在Visual Studio中收到错误消息“无效的SHA1哈希格式:?0c 0f f5 ...”,则该问号表示该字符不可见。- 手动输入第一个字符,然后从此对话框中粘贴值。删除所有空格,使其看起来像0c0ff5 ...,并使该行看起来像上面的SigningCertificateCriteria代码。
您也可以手动使用SignTool.exe,但是对我来说,此安装程序在每次编译时都透明地运行。