2014-09-05 65 views
2

我正在使用Microsoft Visual Studio 2010 Express,並且正在構建需要捆綁可再發行的msvcp100和msvcr100庫的應用程序。我見過的消息來源說,我應該扯這些文件直接出我安裝的Visual Studio 2010 Express不包含「redist」文件夾

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.CRT 

我的系統在指定的位置,但沒有「REDIST」目錄下的「VC」目錄。此外,我無法找到的「Microsoft Visual Studio的10.0」目錄下的任何地方的「msvcp100.dll」,但有一個「msvcr100.dll」在

Microsoft Visual Studio 10.0\Common7\Packages\Debugger\X64 

如果這些庫中的第一個目錄存在我提到?如果是這樣,任何想法爲什麼他們不存在?如果不是,我應該在哪裏得到它們?

(我的問題是類似this question,這並沒有得到滿意的答覆。)

回答

3

在法律上,如果在redist文件夾中不存在的DLL文件,那麼你沒有權限重新分配他們。他們是受版權保護的作品,Microsoft僅在Microsoft Visual C++ 2010 Express許可協議下授予您許可,以重新分發該軟件附帶的代碼並在REDIST.TXT中列出。文件Common7\Packages\Debugger\X64\mscvcr100.dll未在REDIST.TXT文件中列出,因此您沒有權限重新分配它。與在redist文件夾外發現的任何其他DLL一樣。如果您從Microsoft單獨下載vcredist_x86.exe,那麼VC++ 2010 Express許可協議根本不適用於此,因此您受其包含的不同和單獨協議的約束。

如果要在強大的法律基礎上重新分配使用Visual C++構建的應用程序,您有三個選項。首先是不要重新分配這些DLL,並指示你的最終用戶在微軟的網站上下載他們,如果他們還沒有安裝它們的話。其次是升級到包含redist目錄的Visual C++ 2010 Professional。第三種是升級(或降級)到包含redist目錄的Visual C++ Express版本。

+0

因此,總而言之,假設我使用的是MSVC 2010 Express,那麼「redist」文件夾不是*應該存在的? – bdesham 2014-09-05 19:47:47

+0

老實說,我不知道在2010 Express版本中沒有使用redist文件夾是故意的還是意外的。之前和之後的Express版本都包含它,所以它可能是偶然的。然而,微軟改變了他們在2010年允許你重新發布DLL的方式。在VS 2008中,無論版本如何,在重新發布DLL時都有相當嚴格的要求。在VS 2010中,這些要求得到了緩解,但微軟當時可能認爲他們不能相信正確地重新分發DLL。 – 2014-09-05 21:02:55

相關問題