1

我有一个困扰我一段时间的问题:

我使用 CSSFriendly,其中包含 App_Browsers 文件夹和 CSSFriendlyAdapters.browser 文件。

一切正常,但是每次我对项目中的源文件进行更改并重新构建时,运行 Web 应用程序时 App_browsers 文件夹开始被忽略。

为了解决这些问题,我必须记住在构建之前触摸 CSSFriendlyAdapters.browser(我通常插入或删除一个空行)。如果我不这样做,同样的问题。

我一直在到处寻找解决方案。Web 应用程序设置为使用 .net 4.0 编译,我的 bin 文件夹中没有 App_Browsers.dll 和 __browserCapabilitiesCompiler.compiled 文件。

我试图清理我所有的临时文件夹,但每次都会出现问题。

我正要编写一个批处理文件,该文件涉及 CSSFriendlyAdapters.browser 文件作为预构建操作,但我认为这里有人可以提供帮助。

更新
解决了编写批处理文件的问题。起初它可以工作,但几个月后仅此还不够,我还必须在每次编译后重新启动 IIS。

(我还注意到确实生成了App_Browsers.dll和 __browserCapabilitiesCompiler.compiled* 文件,但它们被复制到 asp.net 临时目录而不是我的 bin 文件夹中)。

4

1 回答 1

4

我知道这是一个迟到的回复,但最近几天我很难解决这个问题。唯一对我有帮助的是使用aspnet_regbrowsers.exe -u位于 C:\Windows\Microsoft.NET\Framework\v4.0.30319 中的命令从 GAC 卸载预编译的浏览器功能文件。只有在我这样做之后,我网站的 app_browsers 文件夹中的 .browser 定义文件才能被正确识别。我已经安装了微软为这个问题提供的修补程序,但它没有帮助。我想明确一点,将新的浏览器文件复制到 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers 以便进行机器范围的更新并运行aspnet_regbrowsers命令导致错误(“找不到 ID 为 'IE' 的浏览器或网关元素”)。因此,卸载 GAC 中已有的内容显然迫使我的网站使用自己的浏览器定义文件,之后一切正常。我真的不知道这种方法是否有任何负面影响,但到目前为止还不错。

于 2013-12-11T19:50:13.060 回答