我有一个运行.Net 3.5的应用程序,并希望使用安装工具包将所有用户升级到V4.0。升级工作正常,但我不想手动编辑所有配置文件以添加所需的行:
<startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
这是使Crystal Reports 2010正常运行所必需的。我希望Configuration命名空间有一个标记为startup的部分,但没有这样的运气。如果没有定义节类型,我无法添加新节。有没有人有使用Configuration类这样做的经验?
谢谢,Neil
答案 0 :(得分: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);