use*_*049 5 clickonce visual-studio-2010
我有一个让我发疯的问题.
我使用visual studio 2010专业版.我以Microsoft 在此处显示的方式创建了dpi感知应用程序,通常会向包含以下内容的应用程序添加清单:
<?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>
Run Code Online (Sandbox Code Playgroud)
然后我发布我的应用程序,然后尝试安装它.完全失败.在安装过程中出现错误窗口弹出应用程序格式不正确(这是一个翻译,我使用波兰语版本的操作系统).错误日志显示在清单创建期间存在HRESULT 0x8007001f异常.此异常表示"设备无法正常运行".伟大但什么设备?
谷歌的研究表明,我所遇到的那种错误可能与不正确地签署程序集有关.我花了几个小时试图解决这个问题,以各种方式签署集会但没有成功.
我发现只要注释掉整个<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);
...
Run Code Online (Sandbox Code Playgroud)
并删除app.manifest,它应该通过单击一次发布向导来创建。
| 归档时间: |
|
| 查看次数: |
1506 次 |
| 最近记录: |