假设我有“建立服务器”和“dev的机器”,这两个具有以下特征假设我有相同的源代码,我是否必须重建代码?
- C#编译器
- 相同源代码
- 相同系统环境变量
- 相同编译&编译器标志
- 构建服务器和开发机器上的相同体系结构
我也了解有关从Eric Lippert's blog C#编译器下面的(我使用.NET,但这个问题可以问任何静态语言构建过程中)
- 设计的C#编译器永远不会产生相同的二进制两次
- 在基本层面上,C#编译器为您做的工作是需要C#代码,分析它的正确性,并生成一个用PE格式编写的等效程序
- 编译器优化和多线程编译器不是-determinstic
- JIT将cha在运行时
知道这一切NGE的代码。
如果我建立在生成服务器上的源,并得到一组DLL的和我所说的server binaries
难道不是多余的重建我的开发机器上的二进制可执行文件,即建立local binaries
AREN server binaries
和local binaries
有效替代对方。
如果是这样,我可以只复制所有的server binaries
...但他们local binaries
已经去了,并把它们当作我自己建造它们的想法。
很明显,在1个开发机器的情况下,这似乎是不必要的,但如果我有开发机器,我只需要构建一次,而不是n
次。
是否有明显的平局背对着我的逻辑是什么? .Net商店的这种常见做法是什么?