公司必須用vs2005生產,可是我想用vs2013來編寫,然後用vs2005編譯,有什麼好辦法嗎?

公司使用vs2005以及InstallShield作為生產環境,部署在一台伺服器上,肯定付費啦。我們其他人呢有vs2005可以用,但是我想用vs2013啊...因為實在是太強大和舒服了。不過我寫的東西最後還是要交給vs2005,因為其他產品都是vs2005的,就不能一起玩耍了。那麼有沒有什麼方式可以解決我目前的糾結呢...非C#,非.Net,MFC是也...謝謝各位


用一個專門的 make系統來維護工程文件,比如CMake 或者 qmake

這樣你就可以精確控制對工程配置的修改,然後分別生成 2005和2013的 project,分別編譯。

平時在2013上開發測試,發布前用2005編譯驗證,然後手工把工程文件的改動合併到公司的2005工程。

2013兩大優點, C++11支持,方便的代碼提醒自動完成。

前一個你不可能用,後一個可以裝個 VisualAssist解決,我個人覺得從編輯體驗上來講,裝了VA的2008比默認的2013還好用。


瀉藥。在不想換公司不能說服老闆換工具的情況下,沒有聽說過什麼簡單的方法。還是跟著用VS2005吧……


說說我的做法:(謝謝 @秦翊 提醒,原做法不太對)

  • 先拷貝一份VS2005的.sln,加上後綴*_2013.sln。

  • 然後雙擊打開*_2013.sln文件,讓他自動升級,生成一組新的*.vcxproj文件,然後編譯一遍。通過的話就把這一套*_2013.sln和*.vcxproj文件加到SVN里就行了。

這之後就是寫代碼,然後測試兩個VS都可以順利編譯了。不過C++尤其是MFC有可能有兼容問題,要小心。比如VS2013已經放棄MBCS支持,要下載單獨的安裝包,還有可能引起編譯或者鏈接的路徑問題。不過這個應該在新的*.vcxproj裡面修改路徑設置就能解決。


如果公司用2010你倒是可以放心用2012和2013,因為我實踐經驗確實沒啥問題……05么……sqybi說得對,沒辦法了。

補充。似乎10,12,13工程的格式和結構都是一樣的,只需要把工程文件裡面VS的版本號改一下就可以打開了


用2005,否則你這裡是爽到了,到時候搞出來的問題不但把你得到的爽值抵消了還要倒貼。

而且,版權問題呢?


用gyp吧,專業生成各個版本的sln.


如果題主公司強制使用VS2005隻是為了兼容XP的話,那其實2005和2013編譯的區別是在用的平台工具集不同,體現在用戶身上就是VS2013編譯的程序在XP上跑會出現缺少vc1xx.dll這種提示。你可以在VS2013里導入2005的平台工具集,編譯的時候切換下就好了

(謝謝評論提醒,XP SP3是沒有自帶VC2005的再發行包的,一般只有OEM和一些D版系統才會集成)


貌似vs不可跨版本,特別是高到底。

公司win7 vs2013

xp筆記本裝不了2013遂換成2010

遂在2010中打開2013的項目,

遂發現更本打不開。


我的開發環境我做主。同樣推薦用cmake,可以生成vc6,vs2005,vs2013的工程, precompiled header, mfc 都ok 。不過代碼要在目標版本都測試下再commit。

~~~~

公司要用svn,可是我就是喜歡用git,commit, tag一樣有辦法搞定。 我的開發環境我做主。


我相當喜歡 vs2005,這是我最喜歡的一個版本,所以這至今仍是我自己寫 c++ 和 c# 程序時的唯一選擇。不論圖標,還是各種工具,離線幫助系統,都是我覺得最好的版本,他還集成了目前已經被淘汰的 windows mobile 開發環境。後來的版本外觀大變,圖標變了,默認界面是黑乎乎的,最讓人不喜的是體積不斷膨脹,對系統盤肆無忌憚的奢侈性的蠶食,恐怕以後 c 盤分區得準備 200 個 G 了。而並沒有增加什麼我認為必不可少的功能。但是隨著越來越多的人升級 ide,有時你不得不對此妥協。沒卵用的版本太多,讓人不悅,.net 也是如此。

當然,如果你要學習和編寫大規模並行計算,你需要用 vs2012 和更新的版本。

至於 install shield,我覺得是可有可無的一個軟體,因為與其用它生成安裝包,還不如自己開發安裝包自由的多。


推薦閱讀:

Visual Studio 有哪些比較偏但是非常強大的功能?
微軟有必要開發 Visual Studio for Linux 嗎,如有必要,那麼會產生什麼影響?
Visual Studio Code 是如何辦到高效處理大文件的?
Visual Studio 支持 C 嗎?
win10安裝visual studio 2015 出現安裝包丟失或損壞是什麼原因?

TAG:代碼管理 | MicrosoftVisualStudio | MFC |