【问题标题】:install chocolatey redis packages for VisualStudio on build在构建时为 VisualStudio 安装巧克力 redis 包
【发布时间】:2014-11-08 15:57:16
【问题描述】:

当我们下载git项目并点击VS中的build按钮时,它会恢复nuget包然后编译。总是很酷。

就这样,我想在编译之前在本地安装 Redis,因为我的项目单元测试作业需要 Redis。

我找到了Redis-64 in nuget,但我不知道为什么它没有正确安装。它显示“Redis-64 已安装”,但事实并非如此。

有Chocolately nuget package 和Redis for chocolatey。看起来很有希望利用它们。

为了达到我的目的,需要先(1)检查chocolately的安装,然后(2)下载redis-64,然后(3)在编译前执行redis-server.exe(可以放在.csproj属性的Pre-build event命令中)。

我想知道如何检查 Redis 巧克力安装和 VS 中的其他步骤。你能教我如何做到这一点吗?

【问题讨论】:

    标签: visual-studio msbuild nuget chocolatey


    【解决方案1】:

    我在这里可能有点离题,但是您所指的 redis 包,即来自 NuGet 的包应该只包含您可以在应用程序中使用的程序集。如果你真的想安装 Redis 应用程序,你会想从 Chocolatey.org 安装 Redis 应用程序,你可以找到 here。

    关于在构建过程中安装 Chocolatey 等,您可能需要查看 build script for ChocolateGUI。作为在 AppVeyor 上执行的构建的一部分,它会检查 Chocolatey,如果不存在,则安装它以及所有必需的应用程序。

    对于你想要的,我认为你需要包括:

    choco install redis

    在您的构建脚本中,这将为您提供您正在寻找的redis-server.exe。

    【讨论】:

    • 你在这里太离谱了。 :-) redis-64 NuGet 包包含实际的服务器 redis-server.exe。
    • 看起来你是绝对正确的 :-) 似乎 Nuget.org 上的 redis-64 包与 Chocolatey.org 上的包完全相同。 Chocolatey 在安装过程中唯一要做的就是为 exe 创建一个 shim,这意味着它可以从任何地方执行。
    【解决方案2】:

    我安装了redis-64 NuGet 包,它对我有用。这是一个不寻常的包,因为它不与任何 Visual Studio 项目相关联,而是从解决方案级别 packages.config 引用它。

    为了在我的集成测试中使用 Redis 服务器,我使用以下代码启动服务器:

    Process.Start(new ProcessStartInfo(Path.Combine(Directory.GetDirectories(@"..\..\..\packages", "Redis-64.*").Single(), "redis-server.exe"), "--bind 127.0.0.1") {
        WindowStyle = ProcessWindowStyle.Hidden
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多