引用项目中的 app.config 会发生什么情况
假设我有 2 个项目,其中项目 A 引用项目 B。项目 A 是一个 Web 应用程序项目,项目 B 是一个类库。
类库有一个 app.config 文件,其中存储了一些设置。当我编译项目A时,在bin文件夹中创建projectB.dll。
部署 Web 应用程序时,app.config 文件的内容会发生什么情况?设置是否编译到 ProjectB.dll 中?
是否可以使用 Reflector 或 ILSpy 等工具检索 app.config 的内容?
Say I have 2 projects, where project A references project B. Project A is a web application project and project B is a class library.
The class library has an app.config file where some settings are stored. When I compile project A, projectB.dll is created in the bin folder.
What happens to the contents of the app.config file when the web application is deployed? Are the settings compiled into ProjectB.dll?
Is it possible to retrieve the contents of the app.config using a tool like reflector or ILSpy?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以将
app.config
添加到库项目,但它未使用或包含在任何输出中。配置应该在应用程序中完成,而不是在库中完成。因此,您需要将相关配置放在 Web 应用程序的 web.config 中,而不是库的 app.config 中。
You can add an
app.config
to a library project, but it is not used or included in any of the output.Configuration is meant to be done in the application - not in the library. So you need to put the configuration in question in the web.config of your web application, not in app.config of a library.
在运行时,您的项目 B 将使用您的 Web 应用程序项目(主机)的设置。因此,您必须重新复制 web.config 文件中的设置。
At runtime, your project B will use the settings of your web application project (the host). So you would have to recopy your settings in the web.config file.
App.config 是配置,而不是应用程序 - 因此它不会保存到 dll 中,也无法通过反射器显示或反编译。
您必须使用项目 A 的设置来配置项目 B(在 web.config 中,因为它是 Web 应用程序)。
没有自动配置外部模块的机制,除非它们编码了默认的后备值。
App.config is configuration, not application - so it's not saved into dll and it can't be displayed by reflector or decompiled.
You have to configure Project B with settings for Project A (in web.config as it is web app).
There is no mechanism to automagicaly configure external modules, unless they have coded default fall-back values.
类库 B 的 App.config 变得无关紧要。如果您想使用那里的数据,您应该将所有内容复制到父应用程序的 app.config (在您的情况下为 web.config)。然后,您将能够使用 ConfigurationManager 从项目 A 和 B 访问它的内容
App.config of your class library B becomes irrelevant. If you want to use data from there you should copy all the stuff to app.config of your parent application (in your case web.config). You will then be able to access contents of it using ConfigurationManager both from projects A and B