今天我打开了我们剃刀视图的预编译。
我们对几乎所有东西都使用了引用的程序集,包括 mvc dll 和System.Web.WebPages。
起初我在本地构建时收到System.Web.WebPages版本不匹配的错误,因此我在 Web.Config 中添加了一个条目
<add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
这解决了导致我假设编译器忽略参考提示路径和<SpecificVersion>
内容的问题?
在 web.config 中,我们的本地构建工作正常(我们碰巧在 GAC 中也有所有 dll)。
在构建服务器上运行我们的构建脚本会引发以下错误:
{OurPath}\web.config (44): Could not load file or assembly 'System.Web.WebPages,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of
its dependencies. The system cannot find the file specified.
这里发生了什么事?我可以看到 System.Web.WebPages dll 在已编译输出的 bin 中,为什么构建服务器找不到它?也许有一个我不知道的依赖关系?
其次,为什么 proj 文件中的提示路径似乎对正在使用的程序集没有影响,即使将 SpecificVersion 设置为 true?