Visual Studio 2013高DPI解决方法导致调试器失败 [英] Visual Studio 2013 High DPI workaround causes debugger to fail

查看:111
本文介绍了Visual Studio 2013高DPI解决方法导致调试器失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

类似于此问题 4k上的Visual Studio 2013 High DPI我向其发布答案的屏幕,但是自从发现下面的问题以来已将其删除.

Similar to this question Visual Studio 2013 High DPI on 4k Screen to which I had posted an answer but have now removed since uncovering the issue below.

我也刚买了一台新的4K笔记本电脑,在SSIS包设计器的显示和VS2013中的对话框以及SSMS中的对话框等方面,都遇到了DPI较高的问题.

I too have just bought a new 4K laptop and have been having problems with high DPI with the display of the SSIS package designer and dialogs in VS2013 as well as dialogs etc in SSMS.

我发现SSMS的一种解决方法是启用位图缩放并在与ssms.exe相同的文件夹中创建清单文件ssms.exe.manifest.

A workaround I found for SSMS is to enable bitmap scaling and create a manifest file - ssms.exe.manifest - in the same folder as ssms.exe.

本文介绍了如何针对SSMS修复此问题

This article describes how to fix this for SSMS

http://www.sqlservercentral.com/blogs/spaghettidba/2015/10/14/ssms-in-high-dpi-displays-how-to-stop-the-madness/

为完整起见,我重复了本文中描述的过程.

For completeness, I've duplicated the process described in the article.

设置此注册表项:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide]
"PreferExternalManifest"=dword:00000001

然后将此xml粘贴到清单文件中.

And then paste this xml into a manifest file.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">

<dependency>
  <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>

</assembly>

现在,这对于SSMS而言非常有效(到目前为止),因此我尝试将此修复程序应用于VS2013.虽然它确实解决了SSIS设计器的显示问题,但在尝试启动调试器时会引起问题.此外,这会影响调试其他项目类型-C#,VB以及SSIS项目.

Now this works great (so far) for SSMS, so I tried to apply this fix to VS2013. While it does fix the SSIS designer display problem, it causes an issue when attempting to launch the debugger. Additionally, this is affecting debugging other project types - C#, VB as well as SSIS projects.

我猜测清单中的依赖项不完整或不准确,因为0x80040155是未注册错误代码的COM接口.

I'm guessing the dependencies in the manifest are incomplete or inaccurate, since 0x80040155 is a COM interface not registered error code.

Unable to start debugging.

An error occurred that usually indicates a corrupt installation (code 0x80040155). If the problem persists, repair your Visual Studio installation via 'Add or Remove Programs' in Control Panel. (Microsoft Visual Studio Debugger)

Unable to start debugging.
The debugger is not properly installed.
Run setup to install or repair the debugger. (Microsoft.DataTransformationServices.VsIntegration)

------------------------------
Program Location:

   at Microsoft.DataTransformationServices.Project.DataTransformationsPackageDebugger.LaunchVsDebugger(IVsDebugger iVsDebugger, DataTransformationsProjectConfigurationOptions options)
   at Microsoft.DataTransformationServices.Project.DataTransformationsPackageDebugger.ValidateAndRunDebugger(Int32 flags, IOutputWindow outputWindow, DataTransformationsProjectConfigurationOptions options)
   at Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage(Int32 launchOptions, ProjectItem startupProjItem, DataTransformationsProjectConfigurationOptions options)
   at Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchActivePackage(Int32 launchOptions)
   at Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage(Int32 launchOptions, DataTransformationsProjectConfigurationOptions options)
   at Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.Launch(Int32 launchOptions, DataTransformationsProjectConfigurationOptions options)

===================================

所以我的问题是,有人能为VS2013提出合适的清单吗(或使SSIS设计者表现出其他方式)?

So my question is can anyone suggest a suitable manifest for VS2013 (or another way to make the SSIS designer behave)?

推荐答案

好,所以我绝对不知道我在做什么.

Ok, so I absolutely have no idea what I'm doing.

但是,在与devenv.exe(C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE)相同的文件夹中,还有几个其他清单文件,其中一个用于DebuggerProxy.dll. .显现.由于这是调试器的问题,并且似乎缺少对该调试器的引用,因此我将内容合并到devenv.exe.manifest文件中,并提出了这个建议,对我有用:

However, in the same folder as devenv.exe (C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE), there are a couple of other manifest files, one of which is for DebuggerProxy.dll.manifest. Since this is a debugger problem and there seemed to be a missing reference to the debugger, I merged the content into the devenv.exe.manifest file and came up with this, which works for me:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0" processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.VC90.CRT"
      version="9.0.21022.8"
      processorArchitecture="amd64"
      publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="asInvoker"
        uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>
<file name="debuggerproxy.dll">
    <comClass clsid="{C5621364-87CC-4731-8947-929CAE75323E}" threadingModel="Both"/>
</file>
  <comInterfaceExternalProxyStub name="CausalityInternal_IAD7ALCausalityEventBridge" iid="{F6A124D7-5BB7-47B2-A9AF-AAB0EEAB60E3}" numMethods="5" proxyStubClsid32="{C5621364-87CC-4731-8947-929CAE75323E}"/>
  <comInterfaceExternalProxyStub name="CausalityInternal_ISDMCausalityEventCallback" iid="{74D108F1-1FD2-4699-991E-C4BAD52E773D}" numMethods="4" proxyStubClsid32="{C5621364-87CC-4731-8947-929CAE75323E}"/>
... many more entries ...
</assembly>

不幸的是,帖子中的字符数限制为30k,它不适合,因此我将文件副本粘贴在一个驱动器中

Unfortunately, there is a 30k limit on characters to a post and it would not fit, so I stuck a copy of the file in my one drive here.

这篇关于Visual Studio 2013高DPI解决方法导致调试器失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆