我正在审查一个.NET项目,我发现大量使用.ini文件进行配置。我更愿意改用app.config文件,但在我介入并与开发人员解决这个问题之前,我想知道是否有任何正当理由支持.ini文件而不是app.config? 最佳答案 嗯,平均而言,.INI文件可能更紧凑,并且在某种程度上更易于人类阅读。XML读起来有点麻烦,而且非常冗长。但是,app.config当然是.NET支持的标准.NET配置机制,并且有很多Hook和做事的方法。如果你使用.INI文件,你基本上是在“一路滚动你自己的”。“重新发明轮子”的经典案例。然后再说一遍:这个项目
这个问题在这里已经有了答案:HowdoIdefinecustomweb.configsectionswithpotentialchildelementsandattributesfortheproperties?(5个答案)关闭3年前。我有一堆路由,我希望能够将它们放入我的Web.Config文件中。对于集合中的每个部分/项目,我需要一个键和两个值字段。类似这样的事情......这可能吗?
我需要在代码中存储secret密码。我不能使用哈希技术,因为需要密码本身。如何将这些数据安全地存储在app.config文件中?还有其他方法可以安全地完成此操作吗?DPAPI和ProtectDataClass不是一个选项,因为key是系统特定的,例如:连接字符串不能以这种方式为不同的最终用户系统存储。 最佳答案 您可以使用DPAPI(数据保护API)来加密配置文件的某些部分。您的代码仍将使用ConfigurationManager并且解密将由框架处理。有关相同内容的更多信息,请参阅此模式和实践文档HowTo:EncryptConfi
我在生产部署文件夹中发现了许多vshost文件。我知道这些是干什么用的,它们不属于这里。我的问题是,它们有什么危害吗?是否值得我花时间检查所有部署文件夹中的100多个应用程序以确保它们已被删除,或者这是浪费时间吗?我还必须更改相当多的部署脚本。它们被开发人员包含在部署构建脚本中,谢天谢地,他们早已不复存在。我知道他们不应该在那里。我想知道把它们留在那里是否有任何危险。 最佳答案 首先,它们不应位于生产部署文件夹中。它们只能由VisualStudio(从开发文件夹)运行。它们是如何部署的?他们为调试设置了一个部分信任的环境。参见her
我在开发用于发送电子邮件的.NET3.5库时遇到问题。我将system.net配置放入app.config:然后我在没有参数的情况下实例化SmtpClient:SmtpClientclient=newSmtpClient();但是配置没有被读取(我试图用NUnit测试库)并且我得到一个System.InvalidOperationException,因为配置没有被读取,因此主机为空。不应该自动读取配置吗? 最佳答案 确保将配置block(如上所示)添加到{appName}.exe.config或web.config-类库的配置是在运
我编写了一个T4模板,我在其中实例化了一个EF上下文以读取一些数据。问题是上下文无法从Web.config中看到连接字符串。如何使来自Web.config的连接字符串可用于模板?更多信息:模板是从头开始编写的EFedmx位于另一个项目中我在模板中进行的第一个查询告诉我它无法在模板所在的项目中找到所需的连接字符串尝试了下面的一些解决方案(谢谢),但我明白了:Error2Compilingtransformation:'Microsoft.VisualStudio.TextTemplating12165CB53B43A726CBA54A29800255D257AAFD4D5F0DACE4D
我有一个包含大约10个只读配置项目的解决方案。它们是Web应用程序、Windows服务、控制台应用程序等。除一个项目外,所有项目都在同一台服务器上。每个项目都有3个环境-开发、测试和生产。所以有30组不同的配置,每组都有相当数量的设置。在每个应用程序和环境中保持配置一致很麻烦。我注意到大多数配置在每个项目中都是通用的,所以我认为以某种方式集中配置会很好。我在某处读到WCF服务可能是一个好方法。我认为也许包含硬编码静态类的库实际上可以正常工作——尽管必须编译以更改配置。理想情况下,配置应该来自实际的.config文件。您将如何为多个项目集中配置? 最佳答案
我以前从没想过;但我最近了解到如何修改app.config文件以添加/删除跟踪监听器(例如,将所有Trace.WriteLine输出重定向到文本文件)。但是我不太明白它是如何工作的?有人可以解释一下吗?我知道相应的C#代码与配置(在此示例中)执行相同的操作-该代码是否在我的应用程序入口点之前生成/执行? 最佳答案 doesthatcodegetgenerated/executedbeforemyapplication'sentrypoint?将配置文件视为标准文本文件。如果您的应用程序代码不读取它也不对其进行任何操作,则什么也不会发
我试图通过使用XmlDocument类并直接修改值来在安装时更改bindingRedirect元素。这是我的app.config的样子:......然后我尝试使用以下代码将1.0更改为2.0privatevoidSetRuntimeBinding(stringpath,stringvalue){XmlDocumentxml=newXmlDocument();xml.Load(Path.Combine(path,"MyApp.exe.config"));XmlNoderoot=xml.DocumentElement;if(root==null){return;}XmlNodenode=r
我在我的C#Windows应用程序中遇到了这个错误:“配置系统初始化失败”。它运行良好。突然我得到了这个异常(exception)。它将内部异常详细信息显示为“缺少根元素”。(C:\Users\company\AppData\Local\Clickbase_Corp_Sverige_AB\TouchStation.vshost.exe_Url_no1nets4fg3oy2p2q2pnwgulbvczlv33\1.1.0.12\user.config)”}。当我尝试从Settings.cs类获取值时会发生这种情况。在program.cs文件中写了下面的代码if(Properties.Se