When you try to install a ClickOnce application on Windows 8 OS, it is intercepted by the SmartScreen filter. It would show the below screenshot:
Though the application is signed with a certificate from Verisign, still the publisher name is displayed as unknown. SmartScreen dialog should be the same as for any other executable, with a "More Info" option, and "Run Anyway" button. Windows SmartScreen alerts users before running unrecognized programs downloaded from the Internet. Microsoft has extended the SmartScreen feature of Internet Explorer to Windows as well to protect users from malware. In general, SmartScreen Protection shows the above message when you try to run a newly released program or an application that has not yet established a reputation. Even though one can easily disable the SmartScreen Protection feature in Windows 8, we don’t advise you to turn off the protection.
In addition to Strong Name signing the assembly, which VS offers support for (via project property pages), you will need to Authenticode sign. There is no direct support for Authenticode signing from Visual Studio; however, it’s easy to add as a post-build step, like so, by inserting these lines into your project file:
<Target Name="BeforePublish">
<Exec Command=""$(WindowsSdkDir)bin\signtool.exe" sign
/f "path_to_your_certificate"
/d signed_content_description
/du signed_content_URL
/t http://timestamp.(vendorwebsite)
/v "path_to_your_exe (in the obj\$(ConfigurationName) directory)"" />
</Target>
The /d is a string description and /du is an url that points to additional description. These two are optional parameters.
Example:
<TargetName="BeforePublish">
<ExecCommand=""C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe" sign /f "MyCert.pfx" /p "password" /t http://timestamp.verisign.com/scripts/timstamp.dll "C:\Projects\obj\Release\App.exe"" />
</Target>
Once this is done, the SmartScreen will continue to warn about the application until the certificate develops a reputation. But it would display a valid publisher name instead of unknown publisher.