代码之家  ›  专栏  ›  技术社区  ›  Scott Langham

为什么Castle Windsor构造函数在带有清单的Windows Server 2003上崩溃?

  •  0
  • Scott Langham  · 技术社区  · 16 年前

    作为准备Windows7应用程序的一部分,我们最近在用户界面的exe中添加了一个清单。

    如果这包括在清单中:

    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
        </application>
    </compatibility>
    

    然后它崩溃了,但如果我把它注释掉并重新构建,就可以了。

    1 回复  |  直到 16 年前
        1
  •  0
  •   Scott Langham    16 年前

    而不是使用以下内容从app.config文件加载castle配置:

    IWindsorContainer container =
        new WindsorContainer(
            new XmlInterpreter(new ConfigResource("castle")));
    

    将配置移动到文字字符串中,并按以下方式加载:

    StaticContentResource scr = new StaticContentResource(
        @"<configuration>
            <!-- Move stuff that was originally in the app.config to here -->
        </configuration>"
        );
    IWindsorContainer container = new WindsorContainer(new XmlInterpreter(scr));
    

    XmlNode section = (XmlNode) ConfigurationManager.GetSection(sectionName);
    

    如果我使用mt.exe向控制台添加清单,则返回null,如果我不使用,则返回预期值。