VS2017及以上版本,设置项目引用属性[复制本地]为全局默认False,避免星空突然无法访问、报500错误原创
金蝶云社区-深圳周少斌身份
深圳周少斌
16人赞赏了该文章 1769次浏览 未经作者许可,禁止转载编辑于2022年12月12日 08:57:05
封面

哈喽,小伙伴们,大家好啊!




1. 问题背景

      众所周知,在开发工具Visual Studio中引用DLL文件,每个被引用文件的[复制本地]属性,默认都是True。

       image.png

       这样很容易把金蝶云星空服务器搞崩,造成诸如“访问金蝶云星空突然报错无法访问,错误代码500”。

       大多数情况下,[复制本地]属性=True,是罪魁祸首。报错的原因大概来说是“星空BIN目录的DLL文件被错误版本的DLL覆盖掉了,DLL版本与星空当前版本冲突”,详细原因本文不作展开。

       本文将重点阐述,如何实现[复制本地]属性全局默认为False,以避免这个致命错误的继续产生。


2. 解决方法

      下载本文末尾处的压缩包,将压缩包中的《Directory.Build.props》文件,复制到与解决方案文件(后辍为*.sln)相同的文件夹下,然后重启Visual Studio,如图所示,如此即可。

QQ截图20221101195147.png

      在该解决方案之下,新创建的项目,引用DLL后,则[复制本地]属性默认为False;旧有的项目,[复制本地]属性仍然保持原样,不会改变,可自行人工全选该项目所有引用DLL,统一设置属性为False。

      [复制本地]属性为False,则在生成程序集时,不会把引用的DLL覆盖到生成目录(星空BIN目录),从而避免了意外出错。

      注意:以上方案,仅适用于VS2017及以上版本。



亲们,欢迎点赞、关注、收藏、微信分享哦!

658fa305118cddcc5ed8cbb162df22a7_0100b081a0b952b34bacba3ace0c2e4b547c.png


赞 16