Jenkins使用msbuild编译问题记录
1.error MSB3491 文件没有访问权限:
出现此类问题的原因一版是因为源代码管理工具中包含了obj或者bin目录导致的,
原因是 编译时会生成一些目录如bin 如果没有就直接创建,但是如果有的话就需要覆盖掉,但是从源代码管理工具中获取下来的是只读权限,覆盖不掉 就会报如上错误
2.error CS0234: 命名空间“”中不存在类型或命名空间名称“ ”(是否缺少程序集引用?)
如果确认代码没有问题,或者在本地编译时能够正常的话,可能是因为解决方案中的项目A需要引用项目B,但是是通过直接引用bin目录下项目B生成的dll文件的方式引用的,
而不是在引用中选择解决方案
如果是使用文件引用的方式引用B项目的话,不能保证编译A的时候B项目已经编译完成了,导致编译A的时候所需要的dll还不存在,自然就会报错了
如果是使用项目引用的话 在编译A的时候会先检查项目B是否编译,没有的话就会先编译B