假設我有「建立服務器」和「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商店的這種常見做法是什麼?