一、發布服務器后報錯
今天在項目發布中遇到一件奇怪的事,開發完成的項目,發布到服務器上時
1. 發布到A服務器,一切正常
2. 發布到B服務器,提示403服務器錯誤

在同事電腦上重新打包發布代碼,並發布到A,B兩台服務器上,都正常。
真是見鬼了,同一個項目,同一份源代碼,但是在不同的電腦上打包發布,卻有一台服務器是錯誤的。
-----------------------------------------------------------------------------------------------------------------------------
二、Bin文件夾下缺少DLL文件
我使用Beyond Compare比較我電腦上打包的發布代碼和同事電腦上打包的發布代碼,發現我打包的代碼的Bin文件夾下缺少幾個DLL文件

--------------------------------------------------------------------------------------------------------
三、引用屬性[復制本地]是False
為什么我電腦上發布的代碼缺少DLL文件,而同事發布的代碼不缺少呢?
經過檢查發現,在我的Visual Studio 中,這幾個引用的屬性[復制本地]是False

而同事從SVN上下載的代碼,未經任何修改,[復制本地]的屬性卻是True的,所以他發布的代碼不缺少DLL文件,而我發布的代碼缺少DLL文件
---------------------------------------------------------------------------------------------------
四、未解之謎
1. 為什么同事從SVN上下載的代碼,未經任何修改,[復制本地]的屬性是True,而我的是False
打開csproj文件發現,其他引用的<private>節點值是True,而這幾個引用的<private>是缺省的,可能是這個缺省值導致了在有的電腦上是True,在有的電腦上是False。關於這個缺省默認值的資料沒有查到,只能這樣猜測了。

2. 為什么同一份代碼發布到不同的服務器,有的成功有的失敗?
我電腦上發布打包的代碼Bin文件夾下是缺少DLL文件的,但是我拿這個代碼發布的另一台服務器卻是成功的。
兩台服務器的環境可能有細微差別,具體差別在哪里就不知道了。
