2014-09-05 108 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

相关问题