【问题标题】:Can the Visual Studio 2012 C++ Redistributable be installed automatically with a TFS Build?可以使用 TFS 构建自动安装 Visual Studio 2012 C++ Redistributable 吗?
【发布时间】:2014-08-22 10:32:00
【问题描述】:

我有一个使用 ClearScript.V8 库的 ASP.Net 项目,该库依赖于 Visual Studio 2012 C++ Redistributable 来工作。我面临着必须在 50 多台机器上安装它的前景,我很好奇是否可以让 TFS 为我做这件事。

我意识到这跨越了 Stack Overflow 和 Server Fault 之间的某个地方,所以我在这两个网站上都询问过。

【问题讨论】:

    标签: c++ asp.net visual-studio-2012 tfs


    【解决方案1】:

    假设 ClearScript.V8 的二进制文件包含在您的项目中(作为复制到 bin 文件夹的文件或作为 NuGet 包),您还应该能够将必要的 Visual C++ 可再发行文件作为二进制文件包含在您的项目中.然后它们将存储在 TFS 中。

    如果您更喜欢 NuGet 包,您可以在您的组织内设置一个本地 NuGet 存储库,并创建一个包含必要 DLL 的 NuGet 包,然后您可以从您的项目中引用这些 DLL。如果为您的解决方案配置了 NuGet 包还原,则将在构建解决方案之前下载该包。在 VS2012 中,您必须进行一些自定义才能在 Team Foundation Build 服务器上发生这种情况。

    如果您不确定需要包含哪些 DLL,您可以使用Dependency Walker 之类的工具来发现需要哪些 DLL,或者您可以调试应用程序并查看在模块窗口中加载了哪些 DLL。微软有一些信息which DLLs to redistribute

    如果您在加载可再发行 DLL 的冲突版本时遇到问题,您可以创建并行清单以确保将正确的 DLL 版本加载到您的应用程序中。但是,由于您的应用程序托管在 ASP.NET 中,这有点棘手,因为 w3wp.exe 是由您直接控制之外的 IIS 执行的。您必须创建一个activation context 来配置您的应用程序使用的清单。

    【讨论】:

      【解决方案2】:

      如果您需要在服务器上安装一些东西以进行构建,我建议您使用 Chocolatey。

      • chocolatey.org/

      这是 PowerShell 中的 NuGet 实现,用于明确解决您面临的问题。您可以创建一个 powershell 文件来安装您需要的所有位,并将其作为预构建步骤轻松包含在 TFS 2013 中。您可以使用 TFS 社区构建工具中的 PowerShell 活动来调用 TFS 2010 或 2012 中的 PowerShell。

      【讨论】:

        猜你喜欢
        • 2012-08-25
        • 1970-01-01
        • 1970-01-01
        • 2013-07-25
        • 1970-01-01
        • 2021-02-02
        • 1970-01-01
        • 1970-01-01
        • 2013-03-26
        相关资源
        最近更新 更多