专栏首页明年我18CopyLocal 之痛

CopyLocal 之痛

怪事年年有,今年特别多。

今天,我机子上好好的一个vs 2008的项目,拷到同事的机子上后,竟然不能运行,报“未能加载程序集”的错误。一看才知道,所有的程序集引用(除了System下的)的“复制本地”属性,都为false。奇了怪了,在我这里不是好好的true吗?

无奈,卸载项目,然后编辑csproj文件,发现每个引用下面,其实根本就没有指定CopyLocal属性!

重新加载项目,然后把它设成true,然后再打开csproj文件,发现多出来一个节点:

看来Private就是用来指定CopyLocal的值的了。如果没这个节点的话,vs会有一个默认值。这个默认值怎么决定的?查到msdn上关于CopyLocal的描述如下:

The project-assigned value of CopyLocal is determined in the following order:

  1. If the reference is another project, called a project-to-project reference, then the value is true.
  2. If the assembly is found in the global assembly cache, the value is false.
  3. As a special case, the value for the mscorlib.dll reference is false.
  4. If the assembly is found in the Framework SDK folder, then the value is false.
  5. Otherwise, the value is true.

马上按照上面提到的情况去对照自己的项目,但没有一个对的上的,看来文档这东西要搞好也不容易,即使是ms也不例外。后来想到,是否vs有个选项可以设置这个默认值的呢?找了一下也没找到。不过即便找到了,也不是一个好的解决办法,因为你不能奢望别人也去修改这个选项。看来以后自己在添加引用的时候,一定要确保每个引用节点下面有这个<private>true/false</private>了,这岂不是得累死了?以后再打开别人的项目的时候,就算在Solution Explorer里看到某个引用的CopyLocal是true或是false,也不敢确定这就是作者的原意了,就算打开csproj文件去看对应的节点,也不敢确定,因为很有可能那里没有private节点,而你不能保证作者的vs默认的是什么,累啊。

不知各位有没有发现这个问题呢?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一个轻量小巧的集成在vs里的代码生成工具

    liberate是一个集成在vs里的轻量小巧的代码生成框架,当然如果您已经熟练运用CodeSmith了,您就不用考虑它了。不过也可以把它作为学习vsx...

    明年我18
  • 实现类似“添加扩展程序…”的设计时支持

    Ajax Control Toolkit这个控件库内包含一些扩展控件,利用这些扩展控件,可以非常方便的为普通的控件添加Ajax效果,例如,利用AutoComp...

    明年我18
  • 'try(A a = new A())' VS 'try finally'

    测试代码地址:https://github.com/kongxiangxin/pine/tree/master/auto-closeable

    明年我18
  • 用GCC开发STM32,正点原子开发板的一个库函数版本例程示例

    首先下载交叉编译环境GCC,这个网上有很多,百度一下就能找到下载。比如 Sourcery G++ for ARM EABI

    特立独行的猫a
  • 熟悉又陌生的 k8s 字段:finalizers

    经常操作 Kubernetes 集群的同学肯定对 finalizers 字段不陌生,每当删除 namespace 或 pod 等一些 Kubernetes 资源...

    Jintao Zhang
  • 使用javap工具分析Java String(字符串)操作

    Put this line into class main method: String a = “i042416”; And decompile the ...

    Jerry Wang
  • IIS 安装 pydio

    Introduction In this how-to, we’ll see the installation of Pydio (Put Your Data ...

    庞小明
  • poj-1028 -网页导航

    Standard web browsers contain features to move backward and forward among the pa...

    瑾诺学长
  • Akka(20): Stream:异步运算,压力缓冲-Async, batching backpressure and buffering

       akka-stream原则上是一种推式(push-model)的数据流。push-model和pull-model的区别在于它们解决问题倾向性:push模...

    用户1150956
  • auto_increment 自增键的一些说明

    原文: https://yq.aliyun.com/articles/59263?spm=5176.8091938.0.0.bjzoFN

    二狗不要跑

扫码关注云+社区

领取腾讯云代金券