相关疑难解决方法(0)

无法从App.Config中检索密钥

在我的WAP项目中,我引用了另一个C#项目(非Web).在那个C#项目中,我有一个app.config,我将其重命名为[projectName] .config

然后我尝试从我的[项目] .config中获取一个来自我的C#项目中的一些代码的密钥,它找不到它:

return ConfigurationManager.AppSettings["somekey"]
Run Code Online (Sandbox Code Playgroud)

所以我想知道为什么它无法读取我的app.config.我认为ConfigurationManager能够从Web项目的web.config和我的[projectName] .config(app.config)文件中读取密钥,该文件也在我引用的项目中?

asp.net

4
推荐指数
2
解决办法
4514
查看次数

如何确保在 C# 项目中更改配置文件会导致 DLL 被重建?

我在 Visual Studio 2015 中有一个 C# DLL 项目 (A),其中包含一个我想复制到输出的自定义配置文件,因此“复制到输出目录”设置为“如果更新则复制”。此 DLL 被同一解决方案中的另一个项目 (B) 引用。每当我重建项目 B 时,项目 A 中的配置文件都会按照我的意愿复制到其输出目录中。

问题是,如果我修改配置文件,它不会被复制到输出中。我认为这是因为项目 A 的输出没有改变,所以 MSBuild 不会费心将其复制到项目 B 的输出目录。

我发现的一种解决方法是将配置文件的内容类型设置为“嵌入式资源”,这会在配置文件更改时重新构建项目 A。这有效,但它有点黑客。有没有更好的方法来获得相同的行为而不实际在 DLL 中包含配置文件?

c# msbuild build visual-studio-2015

4
推荐指数
1
解决办法
994
查看次数

在Visual Studio调试期间从哪里加载user.config

我有一个从用户设置文件读取的应用程序,该文件通常存储在Users / {username} / AppData / Local / {publisher} / {app} / {version} /user.config中。我想测试直接对文件进行更改,而不是通过Visual Studio属性编辑器进行更改。

我找到了另一个问题的答案,该问题指向应用程序应该从何处加载文件,但是当我在Visual Studio中的调试会话期间进行检查时,似乎不存在该问题。

例如,当我在断点处停止时在“立即”窗口中运行以下命令时,它找不到文件。

System.IO.File.Exists(System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath) //returns false
Run Code Online (Sandbox Code Playgroud)

我想在调试过程中找到此文件的原因是,我收到了有关配置文件已损坏并使生产中的应用程序崩溃的报告。我确定可以将文件恢复为默认状态,但实际上我想在调试环境中重现该问题。

如何找到Visual Studio加载的设置文件?

c# wpf user-config

4
推荐指数
1
解决办法
2467
查看次数

从子文件夹解析程序集的正确方法

这是我的应用程序文件夹的样子:

Application:
+ App.exe
+ App.exe.config
Application/Plugins:
+ Plugin1 (folder)
Application/Plugins/Plugin1:
+ Plugin1.dll
+ SomeDll.dll
Run Code Online (Sandbox Code Playgroud)

所以主应用程序 App.exe 寻找插件文件夹并将 {PluginName}.dll 加载到内存中以运行它。该插件通常使用它自己的必须加载的依赖程序集(如 SomeDll.dll)。看起来它有时会制造严重的麻烦。我收到异常,例如无法找到依赖程序集的依赖程序集,我不知道为什么。

例如,我的插件必须加载大量额外的 dll,因为插件运行 OwinSelfHost 服务。

所以它必须加载例如:

System.Web.Http.Owin
Owin
Microsoft.Owin
Microsoft.Owin.Host.HttpListener
Microsoft.Owin.Hosting
Run Code Online (Sandbox Code Playgroud)

当加载Microsoft.Owin.Hosting然后抛出无法加载Microsoft.Owin 的异常

异常看起来像:

Could not load file or assembly 'Microsoft.Owin, Version=2.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of it's dependencies. File not found.
Run Code Online (Sandbox Code Playgroud)

.net c#

3
推荐指数
1
解决办法
1993
查看次数

标签 统计

c# ×3

.net ×1

asp.net ×1

build ×1

msbuild ×1

user-config ×1

visual-studio-2015 ×1

wpf ×1