相关疑难解决方法(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万
查看次数

Powershell调用使用App.config的.NET程序集

我有一个Powershell脚本,它正在加载.NET程序集(在我的例子中是.EXE)并调用一个公共方法,该方法使用app.config来提取加密的连接字符串.

该脚本将程序集的exe.config动态复制到Powershell($ pshome)文件夹作为powershell.exe.config,并且能够从我的开发框运行就好了.问题是它不能从标准的Windows Server 2003安装运行.

我验证了exe.config正在被正确复制到powershell目录.我运行了SysInternals Process Explorer并验证了该进程正在访问配置文件(没有找到文件的消息).我远程调试的powershell.exe实例,可以看到该组件加载罚款,但不能访问ConfigurationManager.AppSettings [...]值(返回null).

我没有想法.我已经读过,我可能可以使用单独的应用程序域,但我看不到使用Powershell执行此操作的示例.

我的代码对以下内容产生了影响:

$absolute_path = "c:\foo.exe"
$config_path = $absolute_path + ".config"
copy "$config_path" "$pshome\powershell.exe.config" -Force
[Reflection.Assembly]::LoadFrom($absolute_path)
$foo = new-object MyFooAssembly.FooClass
$foo.DoSomething()  
Run Code Online (Sandbox Code Playgroud)

在Vista中代码可以工作,在Windows Server 2003中,代码不起作用.

.net powershell app-config

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

运行单元测试时更改为app.config

我想运行一些单元测试.对于此测试,我需要使用app.config文件中的另一个值,然后使用默认值.

在这篇文章" 使用nunit重新加载app.config "中,我找到了一个解决方案.

但是,当一次运行多个测试时,某些测试会失败,因为在部署该函数后未调用旧的配置文件(app.config).怎么会这样?

c# unit-testing app-config

2
推荐指数
1
解决办法
1632
查看次数

标签 统计

app-config ×3

.net ×2

c# ×2

powershell ×1

unit-testing ×1