none
ClickOnce发布时,如果设置了dpiAware,则无法启动ClickOnce部署后的应用 RRS feed

  • 问题

  • # 高分屏ClickOnce记录
    >在高分屏中,.net程序必须在manifest文件中加入特别配置,则可实现。
    ## HDPI配置方式有两种
    1、在vs2015或者vs2017中,生成manifest文件后,默认有一段被注释掉的代码,将其解除注释,并依照其指示,去app.config中做相关配置。
    2、直接在manifest文件中修改并增加如下代码:
    ``` xml
    <?xml version="1.0" encoding="utf-8"?>
    <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
    <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
    <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <dpiAware>True</dpiAware>
    </asmv3:windowsSettings>
    </asmv3:application>
    ```
    >以上两种方式,程序运行时均没有任何问题,但是,会导致发布后无法以ClickOnce方式启动,提示“读取清单时出现异常: 清单可能无效,或者文件无法打开”。

    2017年4月26日 9:05

全部回复

  • Hi,

    你是怎么修改清单的?我猜测你是使用VS自动创建的。 据我所知, 由于你的程序可能使用了临时的数字签名,如果你在发布之后在修改清单,这将导致你的清单不会被信任。

    我建议你试试使用手动创建的清单,你可以遵循以下步骤:

    1. 在你的项目中创建添加一个清单文件: 右击项目->add->new Item->Application Manifest file

    2. 编辑你的清单

    3. 让VS使用你创建的清单:Properties->Application-> Resources->Manifest

    期待你的反馈,希望有帮助。

    Best Regards,

    Bob


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年4月28日 7:46