Deployment 使用Visual Studio 2012,清单已签名,但程序集未签名

Deployment 使用Visual Studio 2012,清单已签名,但程序集未签名,deployment,visual-studio-2012,clickonce,Deployment,Visual Studio 2012,Clickonce,我正在使用ClickOnce应用程序部署,我刚从获得代码证书。我正在使用此证书签署清单 当我下载并安装应用程序时,smartscreen会在上面显示我的名字(很蹩脚,但我认为这是应该发生的事情)。ClickOnce安装程序完成后,smartscreen会再次出现以执行实际应用程序,此处显示“未知发布者” 默认情况下,ClickOnce是否不为程序集签名?我该怎么做 编辑:目前我让VS对ClickOnce的清单(安装程序)进行签名,并设置生成后事件对程序集进行签名。但是,当我安装应用程序时,当我实

我正在使用ClickOnce应用程序部署,我刚从获得代码证书。我正在使用此证书签署清单

当我下载并安装应用程序时,smartscreen会在上面显示我的名字(很蹩脚,但我认为这是应该发生的事情)。ClickOnce安装程序完成后,smartscreen会再次出现以执行实际应用程序,此处显示“未知发布者”

默认情况下,ClickOnce是否不为程序集签名?我该怎么做


编辑:目前我让VS对ClickOnce的清单(安装程序)进行签名,并设置生成后事件对程序集进行签名。但是,当我安装应用程序时,当我实际运行它时,它仍然会显示“未知发布者”。

这听起来不太对。我在多个应用程序中使用了完全相同的工作流,并且工作正常。您的后期构建步骤很可能存在问题。确保您在OBJ文件夹中签署EXE文件(因为ClickOnce从中获取所有文件),而不是BIN文件夹

执行ClickOnce发布,转到OBJ文件夹,右键单击application.exe文件,然后选择属性。它应该有六个标签-最后一个是“数字签名”:

如果你没有它,你就没有正确地签署你的申请

这是我的后期构建步骤-请注意,我只签署了“发布”配置:

  <Target Name="SignOutput" AfterTargets="CoreCompile" Condition="'$(ConfigurationName)'=='Release'">
    <PropertyGroup>
      <TimestampServerUrl>http://timestamp.verisign.com/scripts/timestamp.dll</TimestampServerUrl>
      <ApplicationDescription>my app</ApplicationDescription>
      <SigningCertificateCriteria>/n "my company."</SigningCertificateCriteria>
    </PropertyGroup>
    <ItemGroup>
      <SignableFiles Include="$(ProjectDir)obj\$(ConfigurationName)\$(TargetName)$(TargetExt)" />
    </ItemGroup>
    <Exec Condition=" '$(ConfigurationName)'=='Release'" Command="&quot;c:\Program Files (x86)\Windows Kits\8.0\bin\x64\signtool.exe&quot; sign $(SigningCertificateCriteria) /d &quot;$(ApplicationDescription)&quot; /t &quot;$(TimestampServerUrl)&quot; &quot;%(SignableFiles.Identity)&quot;" />
  </Target>

http://timestamp.verisign.com/scripts/timestamp.dll
我的应用程序
/“我的公司。”