小编Sør*_*sen的帖子

Outlook VSTO具有新的Office High DPI支持

我们有一个用C#编写并使用Windows窗体的Office VSTO加载项.

在最近的Office更新之前,加载项呈现得很好.但在微软推出Office支持高清显示器之后,许多表单在Outlook 2016(MSO/Office 365)中开始呈现空白.

我可以通过在Outlook底部状态栏的"显示设置"中选择"优化兼容性"来解决Outlook中的问题: 显示设置弹出窗口

但是,如果每个用户都必须手动执行此操作,这对我们的客户来说不是一个可行的解决方案.所以我有两个问题:

  1. Windows注册表中的这个设置位于何处以及我需要写什么值才能激活"Optimize for compatibility"模式?
  2. 如何使用新的"Optimize for best appearance"模式使WinForms加载项工作?

更新

我发现禁用转换以一种形式修复了问题,其中控件在删除转换后开始出现.但是,即使在删除所有转换后,我们最重要的表单仍然呈现空白.

我还尝试将项目升级到.NET 4.7并为Windows Forms 启用新的高DPI支持.但这也没有解决问题.

vsto winforms outlook-addin

9
推荐指数
1
解决办法
626
查看次数

Java协变返回类型不适用于重写枚举实例的方法?

我花了很长时间与谷歌一起找到关于这个主题的一些信息,但是与Java枚举和协变返回类型相关的结果几乎不存在.

所以:是否可以使用带有枚举方法的协变返回类型,在枚举类中定义一个方法,然后在实例中覆盖它,如下所示:

package enumcovariance.test;

public enum CovariantEnum {

    INT_INSTANCE(new Integer(3)) {
        @Override
        public Integer getData () {
            return (Integer) super.getData();
        }
    },

    STR_INSTANCE("Hello world") {
        @Override
        public String getData () {
            return (String) super.getData();
        }
    };

    private final Object data;

    private CovariantEnum(Object data) {
        this.data = data;
    }

    public Object getData () {
        return data;
    }

}
Run Code Online (Sandbox Code Playgroud)

然后像这样利用协方差:

package enumcovariance.test;

import org.junit.Test;


public class CovariantEnumTest {

    @Test
    public void intEnumTest () {
        Integer i = CovariantEnum.INT_INSTANCE.getData();
    }

    @Test
    public void …
Run Code Online (Sandbox Code Playgroud)

java enums types return covariant

5
推荐指数
1
解决办法
738
查看次数

Tomcat 因 UnrecoverableKeyException 失败:无法恢复密钥

我在服务器上运行 Apache Tomcat/7.0.68,我正在尝试为其自动更新证书。

证书和私钥是通过 Java 的 keytool 从 PKCS#12 文件(摘自 Powershell 脚本)导入的:

& $keytool -importkeystore -srckeystore $certfile -srcstoretype PKCS12 -srcstorepass $srcpassword -srcalias tomcat -keystore $keystore -deststorepass $dstpassword -destalias teamcity -destkeypass $dstpassword -noprompt
Run Code Online (Sandbox Code Playgroud)

当我重新启动 Tomcat 时,它会输出以下日志行:

INFO: Initializing ProtocolHandler ["http-nio-443"]
jul. 14, 2017 5:03:31 PM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-nio-443"]
java.security.UnrecoverableKeyException: Cannot recover key
  at sun.security.provider.KeyProtector.recover(KeyProtector.java:328)
  at sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:146)
  at sun.security.provider.JavaKeyStore$JKS.engineGetKey(JavaKeyStore.java:56)
  at sun.security.provider.KeyStoreDelegator.engineGetKey(KeyStoreDelegator.java:96)
  at sun.security.provider.JavaKeyStore$DualFormatJKS.engineGetKey(JavaKeyStore.java:70)
  at java.security.KeyStore.getKey(KeyStore.java:1023)
  at sun.security.ssl.SunX509KeyManagerImpl.<init>(SunX509KeyManagerImpl.java:133)
  at sun.security.ssl.KeyManagerFactoryImpl$SunX509.engineInit(KeyManagerFactoryImpl.java:70)
  at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:256)
  at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:608) …
Run Code Online (Sandbox Code Playgroud)

java tomcat

3
推荐指数
1
解决办法
5669
查看次数

为所有配置设置相同的输出路径会产生什么后果?

为了在Visual Studio 2013中调试Web API项目,我必须将Debug配置的输出路径设置为(意味着文件最终相对于解决方案根文件夹),这可以从这里的一些答案中看出.bin\{ProjectName}\bin

但是现在我面临的问题是我们bin\{ConfigurationName}在构建服务器设置中的几个地方使用了路径.我非常想统一Debug的设置和其他Visual Studio配置.

因此我的问题是:您是否知道统一所有配置的输出文件夹会产生任何问题bin\,导致文件夹结构{ProjectName}\bin

如果这样做,有没有办法在不更改输出文件夹的情况下调试Web API项目bin\Debug\

c# asp.net asp.net-mvc visual-studio asp.net-web-api

0
推荐指数
1
解决办法
593
查看次数