一、发布服务器后报错
今天在项目发布中遇到一件奇怪的事,开发完成的项目,发布到服务器上时
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文件的,但是我拿这个代码发布的另一台服务器却是成功的。
两台服务器的环境可能有细微差别,具体差别在哪里就不知道了。