2016-05-25 44 views
6

Simile a questa domanda Visual Studio 2013 High DPI on 4k Screen a cui avevo inviato una risposta ma che ora ho rimosso dopo aver scoperto il problema di seguito.Visual Studio 2013 La soluzione con DPI elevato causa il malfunzionamento del debugger

Anche io ho appena acquistato un nuovo laptop 4K e ho riscontrato problemi con DPI elevati con la visualizzazione del progettista di pacchetti SSIS e delle finestre di dialogo in VS2013 nonché le finestre di dialogo ecc. In SSMS.

Una soluzione che ho trovato per SSMS è di abilitare il ridimensionamento bitmap e creare un file manifest - ssms.exe.manifest - nella stessa cartella di ssms.exe.

questo articolo viene descritto come risolvere questo per SSMS

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

Per completezza, ho duplicato il processo descritto in questo articolo.

Imposta questa chiave di registro:

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

E poi incollare questo codice XML in un file manifesto.

<?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> 

Ora, questo funziona alla grande (finora) per SQL Server Management Studio, così ho cercato di applicare questa correzione a VS2013. Mentre risolve il problema di visualizzazione del designer SSIS, causa un problema quando si tenta di avviare il debugger. Inoltre, questo sta influenzando il debug di altri tipi di progetti - C#, VB e progetti SSIS.

Suppongo che le dipendenze nel manifest siano incomplete o imprecise, poiché 0x80040155 è un codice di errore non registrato sull'interfaccia COM.

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) 

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

Quindi la mia domanda è: qualcuno può suggerire un manifesto adatto per VS2013 (o un altro modo per rendere il progettista si comportano SSIS)?

risposta

5

Ok, quindi io assolutamente non ho idea di cosa sto facendo.

Tuttavia, nella stessa cartella di devenv.exe (C: \ Programmi (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE), ci sono un paio di altri file manifest, uno dei quali è per DebuggerProxy. dll.manifest. Dal momento che questo è un problema debugger e non ci sembrava mancare un riferimento al debugger, ho fuso il contenuto nel file devenv.exe.manifest e si avvicinò con questo, che lavora per 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> 

Purtroppo, c'è un limite di 30k sui caratteri per un post e non si adattava, quindi ho bloccato una copia del file nella mia unica unità here.

+0

Mark, sei il mio eroe! – erop

+0

Dolce! Sono contento di aiutare –

+0

Vorrei aver cercato di più e trovato questo prima ho avuto il problema di riparare il mio vs installazione. Grazie per aver pubblicato la tua soluzione. Punta di cappello a te! – ehcanadian