‘xx.dll’should be excluded because its source file ‘...’is under Windows System File Protection.

在VS中使用Setup工程将exe打包时,正常流程是:添加了目标exe(无论是选择添加文件还是添加项目输出),工程会自动将exe的依赖项即一些dll拷贝exe的目标文件夹下。如图:

但若遇到标题这样的warning,总是很让人不爽,如图:

尽管生成成功了,但为了避免不必要的问题,当然这样也确实可能会出现一些意料不到的问题:https://www.add-in-express.com/forum/read.php?FID=5&TID=5524

如何想办法把warning消除?

做法:将所有报warning错误的dll,进入F4属性窗口将“Exclude”属性设置为"True",如图

或右键该dll选择“排除”即可(同样排除后“Exclude”属性亦被设置为“True”,相同效果),如图:

中间可能会遇到这样的情况:

尽管同样的生成成功了,可以发现上图是由于添加了一个“System.Private.DataContractSerialization.dll”文件,但未找到其依赖项导致的,是因为我们上一步把system.xx.dll都剔除掉了的原因,个人认为可以无需考虑,因为只要安装了.net framework的环境,这些系统程序集自然是能在C盘共享程序集下找到的。如果没有安装环境,exe自然也运行不起来,自然也轮不到该dll调用系统程序集了。(个人见解)

最后无报错的结果如下:

猜你喜欢

转载自blog.csdn.net/qq_23958061/article/details/117789861