今天用Visual Studio
編譯的Web項目
搞得頭昏腦脹…昨天剛剛表揚了一下Visual Studio
今天恨不得拿起它狠狠砸一下
明明是可以正常運行的
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中可以正常運行
單個文件編譯也沒問題
整個站點一編譯就出現上面的錯誤
被這個問題折騰了幾個小時
差點放棄解決這個問題
最後堅持了一下
找到了解決方法
在nfig的<compilation>中加上batch=
false
<compilation debug=
true
targetFramework=
batch=
false
></compilation> batch=
false
的意思就是將每個需要編譯的文件編譯為單獨的dll
也就是一個文件對應一個dll
相當於預編譯
aspnet_compiler
fixednames
使用這種方式進行編譯
沒有任何編譯錯誤
Visual Studio
說
Build succeeded
但使用batch=
false
有個問題
就是第一次編譯很慢
而且Visual Studio
不顯示編譯進度提示
狀態欄一直顯示
Ready
…等啊等…然後就
Build succeeded
原來的默認設置batch=
true
就是為了提高編譯速度
將文件編譯在一個dll中
現在只能無奈地選擇batch=
false
From:http://tw.wingwit.com/Article/program/net/201311/13219.html