我有一个ASP.NET MVC 4 Web项目(而不是网站)解决方案。在该解决方案中,还有一些与单独的层(域项目,服务项目,数据项目和quickbooks项目)相关的其他项目。即:
Web
- Domain
- Data
- ApplicationServices
- Quickbooks
- app.config
- web.config
quickbooks项目有一个app.config文件,用于某些参数。在本地运行时,这一切都有效,而quickbooks项目可以访问app.config文件以获得运行时所需的设置。
但是当我编译整个解决方案进行部署时,程序似乎无法访问此app.config文件。
如果我查看从Release Build过程构建的最终Release包,则有一个bin文件夹,我在其中看到quickbooks.dll。但是app.config文件不是。
我在视觉工作室的整个构建过程中肯定很弱,所以如果这是初级的,请原谅我。
1。)这是否可行,或者所有app.config文件是否都需要在顶级Web项目中?
2。)如果有可能,我希望这是因为我试图尽可能地封装quickbooks项目,app.config文件应该在构建之后到哪里结束?在bin?在网络根目录?
答案 0 :(得分:2)
如果该项目被另一个项目引用(在您的情况下是Web项目),那么它的app.config将不会包含在发布包中。当IIS(或其他)正在运行您的项目时,它将在您部署的项目的上下文中运行。任何引用都将加载到正在运行的项目的上下文中。
所有这一切,如果您在app.config中有设置,例如
<appSettings>
<add key="name" value="value"/>
</appSettings>
您还需要在web.config中包含这些内容。这样,引用的程序集就可以在正在运行的应用程序的上下文中访问所需的内容。