gpt4 book ai didi

.NET ClickOnce 签名导致 "Unknown Publisher"

转载 作者:行者123 更新时间:2023-12-05 01:00:07 25 4
gpt4 key购买 nike

我正在部署在 .NET 4.5 上构建的 ClickOnce 应用程序
以下是事实:

  • 我有一个有效的 Comodo Authenticode 证书
  • 证书安装在我的本地证书库中
  • “签名”选项卡的项目属性显示证书应该用于签署 list (我什至还没有尝试签署 .NET 的程序集)
  • 为 comodo
  • 输入正确的时间戳服务器 URL
  • 在发布选项卡上,设置非常典型:
  • 发布到 UNC 路径
  • 安装文件夹是映射到 IIS 中该路径的 URL

  • 但是,无论我做什么,当我使用“立即发布”按钮实际发布 ClickOnce 应用程序时,所有文件都会发布,但是当我下载“Setup.exe”时,它总是显示“未知发布者”。

    关于我做错了什么的任何想法?我已经研究了几个星期,并且我已经阅读了足够多的内容来相信我正在“正确”地做这件事,但我只是必须缺少一些小复选框或设置,或者当然。

    任何帮助表示赞赏。

    -- W.G.

    最佳答案

    据我所知,“未知发布者”键关闭了代码签名,Visual Studio 没有为其提供接口(interface)。哦,它确实有签名接口(interface),但仅用于 list 签名和强名称程序集签名。 This other question也提到了三个签约。

    要将“未知发布者”替换为您的组织名称,您必须在 .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="&quot;$(ProjectDir)..\Bin\SignTool&quot; sign $(SigningCertificateCriteria) /d &quot;$(ApplicationDescription)&quot; /t &quot;$(TimestampServerUrl)&quot; &quot;%(SignableFiles.Identity)&quot;" />
    </Target>

    为了获得我已经安装在我的机器上的证书的哈希码(上面的“0c0ff5 ...”),我
  • 运行 certmgr.msc 并打开证书 - 当前用户 > 个人 >
    证书
  • 双击我想要的证书并单击详细信息选项卡
  • 使用 Ctrl-C 复制指纹的值(看起来像“0c f0 f5...”),除了第一个字符 .这个文本框中有一个不可见的字符,它与第一个字符一起被复制,以后会弄乱你的脚本。因此,手动键入第一个字符(在本例中为“0”),然后粘贴此对话框中的值。如果您在 Visual Studio 中收到错误“无效的 SHA1 哈希格式:?0c 0f f5...”,则该问号表示存在不可见字符。
  • 手动键入第一个字符,然后粘贴此对话框中的值。删除所有空格,使其看起来像 0c0ff5...,并使该行看起来像上面的 SigningCertificateCriteria 代码。

  • 您也可以手动使用 SignTool.exe,但对我而言,此设置在每次编译期间透明地运行它。

    关于.NET ClickOnce 签名导致 "Unknown Publisher",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30132305/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com