2

一个天真的头脑会期望你被允许重新分发一个名为redistributable的包。许多软件都附带了 redist 包并安装它们。但Microsoft Visual C++ 2008 Redistributable Package的软件许可条款明确指出:“您不得……发布软件供他人复制”。

我已阅读Can Microsoft Visual C++ 2008 Redistributable Package be free redistributed的答案,但不幸的是,唯一的信息来源是没有法律价值的第 3 方操作指南。

是否有合法的方式来发布 C++ Redistributable Package 或者我们必须将客户指向下载页面?

背景:我们有权随我们的产品运送第 3 方 dll,但对这些 dll 没有其他影响。这些 dll 需要 2008 c++ 可再发行包。如果我正确理解了情况,我们需要一个 VS2008 许可证,以便将 microsoft-dll 与我们的应用程序一起提供并创建一个干净的设置过程。

我正在谈论的包裹。

4

3 回答 3

2

您可能能够从 Windows SDK 获得重新分发权限。带有 .NET 4 SDK 的 Windows 7 的 Win SDK 包含 MSVC++ 2010 的以下文件:

\Program Files\Microsoft SDKs\Windows\v7.1\Redist\VC
    vcredist_ia64.exe
    vcredist_x64.exe
    vcredist_x86.exe

redist.txt 文件指出:

根据软件的许可条款,您可以将下列未修改的文件作为安装包的一部分重新分发:[后跟上述列表]

我目前没有安装早期的 SDK,但我猜想 2009 年左右发布的 SDK 可能包含您正在寻找的 VC++ 2008 可再发行运行时文件。


更新:

Windows SDK for Win 7 with .NET 3.5 SP1确实包含 VC++ 2008的运行时,但 redist 权限不适用于该vcredist_xxx.exe格式。该 SDK 为原始 DLL 和清单提供重新分发权限,以用作应用程序本地目录结构的一部分。这仍然可以为您提供安装应用程序所需的东西,而无需使用 MSI 和 VC 运行时的合并文件。

为方便起见,我们提供了以下文件夹以供重新分发 VC++ 运行时文件时使用。根据软件的许可条款,您可以将应用程序本地文件夹中的文件夹(未修改)重新分发为子文件夹,而不更改文件夹名称。您还可以将文件夹中的所有文件(*.dll 和 *.manifest)作为一个整体重新分发,为方便起见,该文件夹列在该文件夹下方。

\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\
     Microsoft.VC90.CRT.manifest
     msvcm90.dll
     msvcp90.dll
     msvcr90.dll

ETC...

于 2012-03-09T07:58:22.527 回答
0

如果您无法获得 VS 许可证,请让您的第 3 方 dll 提供商之一创建一个包含可再发行组件的设置,然后将 dll 提供商的设置包含在您的安装程序中。

第 3 方 dll 提供者有责任确保他们的 dll 在安装后没有可再发行组件的机器上工作。您的供应商似乎都没有附带可再分发依赖项,这一事实令人惊讶。

于 2012-03-08T23:07:28.337 回答
0

Visual Studio Express Editions 也带有必要的许可证。您必须在 Microsoft 注册它们,但它们是免费的。

于 2014-10-13T11:43:22.313 回答