相关疑难解决方法(0)

在运行时更改默认app.config

我有以下问题:
我们有一个加载模块的应用程序(添加).这些模块可能需要app.config中的条目(例如WCF配置).因为模块是动态加载的,所以我不希望在我的应用程序的app.config文件中包含这些条目.
我想做的是以下内容:

  • 在内存中创建一个新的app.config,它包含模块中的配置部分
  • 告诉我的应用程序使用新的app.config

注意:我不想覆盖默认的app.config!

它应该透明地工作,以便例如ConfigurationManager.AppSettings使用该新文件.

在我这个问题的评价,我用同样的解决方案提出了为这里提供:刷新的app.config与NUnit的.
不幸的是,它似乎没有做任何事情,因为我仍然从正常的app.config获取数据.

我用这段代码来测试它:

Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
Console.WriteLine(Settings.Default.Setting);

var combinedConfig = string.Format(CONFIG2, CONFIG);
var tempFileName = Path.GetTempFileName();
using (var writer = new StreamWriter(tempFileName))
{
    writer.Write(combinedConfig);
}

using(AppConfig.Change(tempFileName))
{
    Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
    Console.WriteLine(Settings.Default.Setting);
}
Run Code Online (Sandbox Code Playgroud)

它打印相同的值twices,虽然combinedConfig包含除正常app.config之外的其他值.

.net c# app-config

128
推荐指数
4
解决办法
8万
查看次数

ASP.Net Web应用程序添加配置变换灰显

我在我的解决方案中添加了一个现有的ASP.Net Web应用程序项目.除了标准的调试和发布配置,该解决方案还有两个自定义配置,SAT和UAT.对于新的Web应用程序,右键单击Web.Config显示上下文菜单,但"添加配置转换"选项显示为灰色.

我不知所措.新项目是一个Web应用程序.Configuration Manager不显示此项目的两个自定义配置,但它适用于其他项目.项目似乎在解决方案文件中具有正确的条目.

思考?

asp.net web-config transform

84
推荐指数
3
解决办法
3万
查看次数

Web Config Transform无法正常工作

在.NET MVC 3.0应用程序中,我有以下配置appSettings:

web.config中

<appSettings>
<add key="SMTPHost" value="mail.domain.com"/>
    <add key="SMTPUsername" value="user@gmail.com"/>
    <add key="SMTPPort" value="25"/>
    <add key="SMTPPwd" value="mypassword"/>
    <add key="EmailFrom" value="notific@gmail.com"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

为了调试,我定义了以下配置转换:

web.Debug.config

<appSettings>
    <add  key="SMTPPort" value="58" xdt:Transform="Replace" xdt:Locator="Match(key)" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

我在调试模式下运行应用程序,但我的SMTP端口仍然从web.config,而不是web.Debug.config.

任何人都可以建议这种配置可能出错吗?

asp.net asp.net-mvc web-config web-config-transform slowcheetah

82
推荐指数
5
解决办法
5万
查看次数

为web.config的各个部分分隔配置文件

是否可以为web.config的特定部分分别配置文件?具体来说,我想将IIS 7的重写部分移出web.config并进入它自己的配置文件.

asp.net iis-7

28
推荐指数
2
解决办法
2万
查看次数

在configSource中使用外部.config文件会产生错误

我正在玩如何使用Configuration Manager在App.config文件中读取/写入C#中的WPF应用程序的自定义部分.我阅读了关于.NET 2.0 Configuration Demystified的这篇优秀文章,它在使用配置文件方面给了我很多帮助.这是我写的初始App.config文件,它工作正常.

App.config中

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="example" type="CustomConfig.ExampleSection, CustomConfig" />
  </configSections>
  <example version="A sample string value." />
  <appSettings>
    <add key="version_string" value="1.01" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

但当我更改App.config文件时,我的自定义部分将从configSource中提到的外部配置文件中读取,Visual Studio给出了一个错误

configSource文件的格式必须是包含该部分名称的元素.

以下是App.config和example.config文件

更改了App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="example" type="CustomConfig.ExampleSection, CustomConfig" />
  </configSections>
  <example configSource="example.config" />
  <appSettings>
    <add key="version_string" value="1.01" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

example.config

<?xml version="1.0"?>
<example>
    <add key="version" value="blahblah" />
</example>
Run Code Online (Sandbox Code Playgroud)

.net c# app-config

9
推荐指数
2
解决办法
3万
查看次数

是否可以在运行时创建绑定重定向?

应用程序启动后是否有一种方法可以创建适用于所有未来装配负载的绑定重定向?

.net assembly-resolution

5
推荐指数
2
解决办法
1481
查看次数

需要一种方法来引用同一个第 3 方 DLL 的 2 个不同版本

我有一个包含 2 个项目的解决方案:Proj1 和 Proj2,其中 Proj1 是启动项目。

Proj1 引用 Proj2(为了调用 Proj2 的类)并且它有现有的代码,该代码还引用了一个名为 A 的第 3 方 DLL,版本为 1.0.0.0。

Proj2 引用了相同的第 3 方 DLL A,但它在 2.0.0.0 版中引用了它,因为该项目中的类需要较新的实现,而 1.0.0.0 中没有。

到目前为止,我已经尝试了以下操作: 1. 引用 A 时将“特定版本”切换为 true 2. 在 Proj2 中添加了一个名为“v2Folder”的文件夹并将 A v2.0.0.0 添加到其中,将其“复制到输出目录” " to Copy Always 3. 向 app.config 添加了“探测路径”以指向带有 v2.0.0.0 DLL 的子文件夹

我想要的是在普通\bin\文件夹中看到A v1.0.0.0,在\bin\v2Folder中看到A v2.0.0.0,我希望当我运行我的Proj1.exe时,Proj1的旧代码仍然会调用A v1.0.0.0的方法,调用Proj2实现的只调用A v2.0.0.0的方法。

问题是,当我构建我的解决方案时,v1.0.0.0 被 v2.0.0.0 取代,构建日志中有类似“无法解决“A、版本 = 2.0.0.0、文化 = 中性、 PublicKeyToken=blah”和“A, Version=1.0.0.0, Culture=neutral, PublicKeyToken=blah”。任意选择“A, Version=2.0.0.0, Culture=neutral, PublicKeyToken=blah”。

有人可以帮忙吗?

c# dll

5
推荐指数
2
解决办法
2592
查看次数