gpt4 book ai didi

visual-studio-2010 - 安装ClickOnce发布的支持DPI的应用程序

转载 作者:行者123 更新时间:2023-12-03 08:14:08 26 4
gpt4 key购买 nike

我有一个使我生气的问题。

我使用Visual Studio 2010 Professional。我以Microsoft显示here的方式创建可识别dpi的应用程序,该方法通常是向包含以下内容的应用程序添加 list :

<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>

然后,我发布我的应用程序,然后尝试安装它。完全失败。在安装错误窗口中,弹出该应用程序格式不正确的信息(这是翻译版本,我使用的是波兰语版本的操作系统)。错误日志显示 list 创建期间存在HRESULT 0x8007001f异常。此异常表示“设备不起作用”。太好了,但是什么设备?

Google研究表明,我遇到的这种错误可能与程序集的不正确签名有关。我花了几个小时试图解决这种问题,以各种方式对组件进行签名,但没有成功。

我发现,注释掉整个 <windowsSettings>标记就足够了,然后即使没有任何程序集签名,该应用程序也可以很好地安装。我不知道这是否与事实有关,当您在Web浏览器中的该标签的xmlns属性中键入该url时,服务器将响应“在处理您的请求时发生错误”。信息。

有人可以帮忙吗?我已经在几台装有win7,win7 64和winxp的机器上尝试过此方法,每次得到相同的结果时,我不知道为什么Google对此不显示任何内容。我是唯一尝试安装ClickOnce发布的可识别dpi的应用程序的人吗?

最佳答案

只需从代码启用DPI感知即可。像这样的东西:

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool SetProcessDPIAware();

[STAThread]
static void Main()
{
if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware();

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
...

并删除app.manifest,应该通过单击发布向导来创建它。

关于visual-studio-2010 - 安装ClickOnce发布的支持DPI的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864672/

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