通過閱讀 WPF 官方開源倉庫的代碼和文檔,可以瞭解到在進行獨立發佈的時候會在倉庫裡面帶上 vcruntime140 的原因 ...
通過閱讀 WPF 官方開源倉庫的代碼和文檔,可以瞭解到在進行獨立發佈的時候會在倉庫裡面帶上 vcruntime140 的原因
在獨立發佈的時候,可以在倉庫裡面找到 vcruntime140.dll
這個文件
這是因為 WPF 框架用到了兩個使用 C++\CLI
的項目,分別是 DirectWriteForwarder.dll
和 System.Printing.dll
庫
這兩個庫在進行發佈的時候需要引用 vcruntime140.dll
這個文件,如果進行 Debug 下發佈的時候需要引用 vcruntime140d.dll
文件
如果不將這個文件帶入獨立發佈的文件裡面,那麼將要求用戶去安裝 VC 的運行時,這個將會帶來一個神坑,就是 C++ 環境問題。而這裡的 WPF 只是需要這個文件而已,所以在獨立發佈的時候將帶上這個文件,此時用戶端就無需安裝 VC 運行時
因為預設的 vcruntime140.dll
會在應用程式運行的時候根據環境的不同會有選擇衝突,同時如果有依賴某些有趣的庫,這些庫也許對 vc 運行時也有依賴,但是 WPF 用的版本也許和引用的庫是不相同的,為了減少這部分的衝突,微軟改名部將重寫分發的vcruntime140.dll
修改為 vcruntime140_cor3.dll
也就是實際發佈的時候看到的文件