当前位置:  开发笔记 > 编程语言 > 正文

什么时候copy-local应该设置为true,什么时候不应该?

如何解决《什么时候copy-local应该设置为true,什么时候不应该?》经验,为你挑选了4个好方法。

我想知道什么时候设置copy-local=true引用有任何启发式方法?

如果引用类型只在内部使用我可以设置copy-localtrue,但如果被引用类型暴露作为参数和返回值我设置copy-localfalse和指示时,应使用我的媒体库的依赖特定版本应参照?

谁能为我澄清一下这个?



1> JaredPar..:

复制本地对于部署方案和工具很重要.作为一般规则,如果引用未包含在GAC中,则应使用CopyLocal = True.

复制本地意味着我必须手动部署此DLL才能使我的应用程序正常工作.如果它是假的,它实质上意味着"我依赖于另一个必须单独安装或链接的组件,DLL就会在那里".



2> Sayed Ibrahi..:

复制本地实际上是为了支持本地调试.当您为应用程序打包和部署时,您应该将项目构建到相同的输出文件夹,并确保您拥有所需的所有引用.

在构建大型源代码树时,CopyLocal尤其令人痛苦.有一个关于如何在此处禁用CopyLocal的相关问题,您可以在MSBUILD中如何覆盖.NET中的引用的CopyLocal(专用)设置.以及Visual Studio(2008)中大型解决方案的最佳实践.

我在文章MSBuild:创建可靠构建的最佳实践,第2部分中写过如何处理构建大型源代码树的文章.

所以简而言之,我会说当文件复制导致你的构建花费更多时间然后你愿意为每个构建花费时禁用CopyLocal.


如果更改输出以将项目构建到相同的输出文件夹并确保您拥有所需的所有引用,那么更好地说"仅禁用CopyLocal".

3> Kent Boogaar..:

这真的是关于目标环境.如果copy local为false,则表示程序集已经存在于目标环境中(通常在GAC中).将其设置为true可确保它将显示在构建的输出中,因此可以更轻松地部署到目标环境.



4> jpierson..:

查看以下MSDN参考资料,详细解释CopyLocal的行为.

项目参考

不幸的是,有一些怪癖,并且CopyLocal将不必按照预期的方式工作,如下所示构建的辅助装配中的装配参考.

MainApp.exe

MyLibrary.dll

ThirdPartyLibrary.dll(如果在GAC CopyLocal中不会复制到MainApp bin文件夹)

如果您不打算在目标计算机上将第三方程序集安装到GAC中,这会使xcopy部署变得困难.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有