【问题标题】:Adding startup section to .net Config file将启动部分添加到 .net 配置文件
【发布时间】:2014-03-04 08:01:26
【问题描述】:

我有一个运行 .Net 3.5 的应用程序,并希望使用安装工具包将所有用户升级到 V4.0。升级工作正常,除了我不想手动编辑他们的所有配置文件来添加所需的行:

<startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>

这是使 Crystal Reports 2010 正常工作所必需的。我希望配置命名空间有一个标有启动的部分,但没有这样的运气。如果没有定义部分类型,我无法添加新部分。有没有人有使用 Configuration 类做这件事的经验?

谢谢,尼尔

【问题讨论】:

    标签: .net configuration crystal-reports installation


    【解决方案1】:

    我发现这样做的最“优雅”的方式是使用一些原始 xml,其中包括整个启动部分。因此,虽然它可能不是最“正确”的方式,但它仍然比手动编辑配置文件 IMO 更好。

    这是一个工作代码示例,用于从同一可执行文件中编辑配置文件(您可能需要在 OpenExeConfiguration 中提供路径才能从您的安装程序中执行此操作):

    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    var sec = config.Sections["startup"];
    sec.SectionInformation.SetRawXml("<startup useLegacyV2RuntimeActivationPolicy=\"true\"><supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.0\" /></startup>");
    config.Save(ConfigurationSaveMode.Modified);
    

    【讨论】:

    • 您好,Omer,感谢您的回复。我可能没有让自己足够清楚 - 我真正需要的是可以在我的安装程序中运行的一段代码,它将上面的行添加到配置文件中,以将现有的 3.5 安装升级到 .net 框架 4。我可以看到如何将现有部分添加到配置文件中,但我不明白如何使用 Configuration 类将启动标记添加到配置文件中。
    • Omer - 您的解决方案运行良好。今天才有机会试一试。谢谢,这解决了问题,简单而优雅。
    猜你喜欢
    • 2011-04-26
    • 2015-12-02
    • 2020-06-17
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多