2013-03-07 49 views
1

我知道引用存储在ASP.NET Web应用程序的项目(vbproj)文件和网站的Web.Config(http://msdn.microsoft.com/en-us/library/37e2zyhb%28v=vs.71%29.aspx)中。发布网络应用程序和网站

我最近把一个网站转换成了一个web应用程序。我现在注意到,即使Web.Config中的版本信息不正确,然后通过浏览器访问Web应用程序时,Web应用程序也会发布(使用“发布”选项),但出现错误。

如果Web.Config中的程序集版本不正确,我无法发布网站。

我读过Web应用程序是预编译的(在发布之前),而网站是在第一次通过浏览器访问网站时编译的。

因此,我相信我所说的应该是相反的方式,即我应该能够在Web.Config中发布带有不正确版本的网站(因为它们没有编译),我不应该能够发布一个Web应用程序。

我错过了什么?

回答

0

经过一番进一步的研究;我发现ASP.NET Web应用程序是使用MSBuild构建的,ASP.NET网站使用ASPnet_Compiler构建。 ASPnet_Compiler在构建时查找引用程序集的Web.Config(添加程序集标记),而MSBuild在构建时查找项目文件(vbproj)。

Web应用程序部署时不使用vb​​proj。我相信该项目文件用于链接。因此,在运行时,Web应用程序使用Web.Config中的信息来标识要在本地bin文件夹中查找的程序集,然后使用GAC(仅用于aspx页)名称空间仍然需要手动导入部分类后面的代码中。

如果有人有任何意见或更好的答案,请发表。