Unit testing 带msunit的TeamCity:如何将dll复制到输出文件夹?

Unit testing 带msunit的TeamCity:如何将dll复制到输出文件夹?,unit-testing,resources,teamcity,Unit Testing,Resources,Teamcity,我想与teamcity一起运行我的(正在工作的)msunit测试。在我的测试中,我需要几个文件,我使用以下方法之一成功复制了这些文件(在VS中运行测试时): 文件属性->复制到输出目录 或者使用xcopy通过后期构建步骤复制它们 作为构建后操作,我尝试了: xcopy /Y "$(ProjectDir)*somelib*.dll" "$(TargetDir)" 或 如您所见,我有一些lib.dll文件需要复制。这是由于使用了一个库,我将其列为参考。这个库是正确复制的,但它需要一些旧的(c++)

我想与teamcity一起运行我的(正在工作的)msunit测试。在我的测试中,我需要几个文件,我使用以下方法之一成功复制了这些文件(在VS中运行测试时):

  • 文件属性->复制到输出目录
  • 或者使用xcopy通过后期构建步骤复制它们
  • 作为构建后操作,我尝试了:

    xcopy /Y "$(ProjectDir)*somelib*.dll" "$(TargetDir)"
    

    如您所见,我有一些lib.dll文件需要复制。这是由于使用了一个库,我将其列为参考。这个库是正确复制的,但它需要一些旧的(c++)DLL,这些DLL不包括在参考包中

    不幸的是,我找不到方法让TeamCity在bin/debug/文件夹中运行msunit测试,或者将所有必需的文件复制到working temp文件夹

    (我的目标是从几个测试套件中运行所有单元测试,并从dotCover收集所有测试的结果。)


    处理这种情况的好方法是什么?我注意到可以将文件作为资源打包到程序集中,并在需要它们之前在单元测试中解包它们。我将在每次测试中需要DLL,并希望保持干燥-这是“只是”复制文件的明智方式吗?

    就TeamCity而言,您可以确保在从命令行(在TeamCity代理机器上,在同一目录中)运行该过程时工作正常,然后在TeamCity构建中复制相同的步骤。由于TeamCity只是将MSBuild作为外部进程启动并执行配置的命令,因此不应存在TeamCity特有的特性

    xcopy /Y "$(ProjectDir)*somelib*.dll" "$(OutDir)"