Visual Studio 2010編譯Web項目的小BUG
今天用Visual Studio 2010編譯home.cnblogs.com的Web項目,搞得頭昏腦脹...昨天剛剛表揚了一下Visual Studio 2010,今天恨不得拿起它狠狠砸一下。
明明是可以正常運行的.ascx控件,編譯時卻出現錯誤:
Circular file references are not allowed.
提示的錯誤位置:
- <%@ Register Src="~/Controls/RightSide/AdRigth.ascx" TagPrefix="Home" TagName="AdRigth" %>
明明是正??梢哉{用的WebService,編譯時卻出現錯誤:
'UserService' does not contain a definition for 'GetUserByUserId'
在IIS中可以正常運行,單個文件編譯也沒問題,整個站點一編譯就出現上面的錯誤。
被這個問題折騰了幾個小時,差點放棄解決這個問題,最后堅持了一下,找到了解決方法:
在web.config的<compilation>中加上batch="false":
- <compilation debug="true" targetFramework="4.0" batch="false">
- </compilation>
batch="false"的意思就是將每個需要編譯的文件編譯為單獨的dll,也就是一個文件對應一個dll,相當于預編譯:aspnet_compiler -fixednames。
使用這種方式進行編譯,沒有任何編譯錯誤。Visual Studio 2010說:“Build succeeded.”。
但使用batch="false"有個問題,就是第一次編譯很慢,而且Visual Studio 2010不顯示編譯進度提示,狀態(tài)欄一直顯示“Ready”...等啊等...然后就“Build succeeded.”
原來的默認設置batch="true",就是為了提高編譯速度,將文件編譯在一個dll中。
現在只能無奈地選擇batch="false"。
- Visual Studio 2010擴展讓JS與CSS實現折疊
- 初步了解Visual Studio 2010 Professional專業(yè)版
- Visual Studio 2010中使用MTLM管理測試工具
- Visual Studio 2010 SP1公測版已經發(fā)布
- Visual Studio 2010中敏捷開發(fā)流程模板的應用