我有一个具备搜索功能的Web应用程序。搜索算法编译为单独的dll文件。在C#代码中,我使用设置文件中保存的字符串来指向搜索索引所在的目录。一旦搜索代码被编译,设置信息将被合并到 Search.dll.config 中,并与 Search.dll 一起放置在 bin 目录下。现在,在我的Web应用程序中,我将 Search.dll 添加到引用中。但是配置文件没有添加到Web应用程序中。然而,Web应用程序可以正常运行并且知道文件的位置。因为在 Settings.Designer 中,它使用 DefaultSettingValueAttribute 来分配默认值(如果配置文件不存在)。
如何将 Search.dll.config 添加到我的Web应用程序中,以便操作员可以根据需要更改服务器上索引文件的位置?
谢谢。
编辑:
我尝试将配置文件添加到我的部署文件夹中。但是ASP.NET会将dll文件放在 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root...... 目录下,而配置文件不会被复制到该目录下。所以现在我不知道如何将配置文件与我的代码一起包含。
感谢您的帮助。
注意:
我一直在使用以下代码将配置文件的值获取到应用程序中。但是,它依赖于dll和配置文件在同一个文件夹中,而我不知道如何实现。
如何将 Search.dll.config 添加到我的Web应用程序中,以便操作员可以根据需要更改服务器上索引文件的位置?
谢谢。
编辑:
我尝试将配置文件添加到我的部署文件夹中。但是ASP.NET会将dll文件放在 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root...... 目录下,而配置文件不会被复制到该目录下。所以现在我不知道如何将配置文件与我的代码一起包含。
感谢您的帮助。
注意:
我一直在使用以下代码将配置文件的值获取到应用程序中。但是,它依赖于dll和配置文件在同一个文件夹中,而我不知道如何实现。
var executingAssembly = System.Reflection.Assembly.GetExecutingAssembly();
var location = executingAssembly.Location; //C:\MyApp\bin\Debug\Search.dll
var config = ConfigurationManager.OpenExeConfiguration(location);
var sections = config.Sections; //count of this is 21
ConfigurationSectionGroup csg = config.GetSectionGroup("applicationSettings");
ConfigurationSectionCollection csc = csg.Sections;
ConfigurationSection cs = csc.Get("Search.Properties.Settings");