gpt4 book ai didi

MSTest:从公共(public)目录部署项目的明智方法?

转载 作者:行者123 更新时间:2023-12-04 05:42:29 24 4
gpt4 key购买 nike

最近在尝试处理 DeploymentItem 时,我失去了一些头发。

我们有一些本地 dll 的通用目录,许多测试都依赖于这些目录。

对于 C++ 项目,我们使用属性页,其中定义了这些路径。这些甚至可以通过一些手动编辑(因为它们是 MSBuild 文件)导入到 C# 项目中。我仍然不知道如何在测试中使用它们。

不幸的是,DeploymentItemAttribute 不能使用工作表中的属性,但它可以使用环境变量。我希望避免强制每个人定义全局环境变量......

我在网上看到了各种建议,但还没有真正找到一个简单的解决方案。

有人对此有好的方法吗?

最佳答案

安德斯的回答是一个很好的解决方案,但就我而言:

  • 我不喜欢将二进制文件保存在源代码树中的想法
  • 许多 dll 没有特定版本,它们会定期更新
    基础。

  • 我以某种方式结束了这个解决方案:

    首先,我将全局 VC++ 属性页包含在测试项目中。这必须通过在 <Project> 下添加该指令来手动完成。 .csproj 顶部的标记:
    <Import Project="$(UserProfile)\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props" />
    我现在可以访问在我的 C++ 环境中定义 dll 路径的属性/宏。

    我那时
  • 在测试项目中添加了一个新的子文件夹,比如 "NativeDlls"
  • 将所需的 dll 作为链接添加到 NativeDlls 文件夹
  • 链接是绝对的,但可以用来自
    上面包含的属性表:
  • <Content Include="$(MyLibLocation)\GDAL18BIN\gdal18.dll"> <Link>NativeDlls\mylib.dll</Link> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content>
    然后 dll 就可以部署了:
    [TestMethod]
    [DeploymentItem(@"NativeDlls")]
    public void TestSomeStuff()
    {
    }

    而且,正如 Anders 所说:剩下的工作是设置调试/发布和 32/64 条件。

    关于MSTest:从公共(public)目录部署项目的明智方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11116047/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com