MSBuild&TFS2010查找Dll

| 我正在尝试创建一个自定义MSBuild任务,该任务将在本地或在TFS2010构建期间运行我的nUnit测试。该脚本在本地运行良好,但我似乎无法在TFS构建服务器上找到测试dll。我正在使用MSBuild.ExtensionPack中的任务来运行单元测试(再次在本地工作正常)。 程序集列表始终为空。 TargetDir显示的路径是\“ C:\\ Builds \\ 2 \\ Product1 \\ ci.product1.acme.com \\ Binaries \\\”,它对我来说很合适。我还尝试在CoreCompile目标之后而不是在AfterBuild目标中启动我的目标,而没有进行任何更改。 我可能犯了一些愚蠢的错误,但目前我处于“杀死我”模式。请帮忙。
  <PropertyGroup>
    <RunTFSBuild>false</RunTFSBuild>
    <SolutionDirectory>$(MSBuildProjectDirectory)\\..</SolutionDirectory>
    <ExtensionTasksPath>$(SolutionDirectory)\\_shared\\MSBuild\\</ExtensionTasksPath>
    <TPath>$(ExtensionTasksPath)MSBuild.ExtensionPack.tasks</TPath>
    <NUnitOutputFile>$(SolutionDirectory)\\nUnitResults.xml</NUnitOutputFile>
    <NUnitOutputFileAsMsTest>$(SolutionDirectory)\\nUnitResultsAsMsTestResults.xml</NUnitOutputFileAsMsTest>
    <ToolPath>$(SolutionDirectory)\\_shared\\MSBuild\\nUnit_2.5.7</ToolPath>
  </PropertyGroup>
  <Import Project=\"$(TPath)\" />

  <Target Name=\"AfterBuild\">     
    <CallTarget Condition=\"$(RunTFSBuild)!=\'true\'\" Targets=\"NUnitTestRunner\" />
    <CallTarget Condition=\"$(RunTFSBuild)==\'true\'\" Targets=\"NUnitTestRunner;TFSNUnitTestRunner\" />
  </Target>
  <Target Name=\"NUnitTestRunner\">
    <ItemGroup >
      <Assemblies Include=\"$(SolutionDirectory)\\**\\bin\\$(Configuration)\\*.nUnit.Tests.dll\" />
    </ItemGroup>
    <ItemGroup Condition=\"$(RunTFSBuild)==\'true\'\">
      <Assemblies Include=\"$(TargetDir)\\**\\*.nUnit.Tests.dll\" />
    </ItemGroup>

    <Message Text=\"SolutionDirectory=$(SolutionDirectory)\" />
    <Message Text=\"ExtensionTasksPath=$(ExtensionTasksPath)\" />
    <Message Text=\"TargetDir=$(TargetDir)\" />
    <Message Text=\"TPath=$(TPath)\" />
    <Message Text=\"NUnitOutputFile=$(NUnitOutputFile)\" />
    <Message Text=\"Running nUnit tests from: $(Assemblies)\" />
    
已邀请:
1)尝试更改属性RunTFSBuild
<RunTFSBuild Condition=\"\'$(RunTFSBuild)\'==\'\'\">false</RunTFSBuild>
2)替换部分(这可能只是清理项目,但由于CallTarget的某些限制,这可能非常重要):
<Target Name=\"AfterBuild\" DependsOnTargets=\"NUnitTestRunner;TFSNUnitTestRunner\" />     
<Target Name=\"TFSNUnitTestRunner\" 
        Condition=\"$(RunTFSBuild)==\'true\'\">
    <!-- TFSNUnitTestRunner Body -->
</Target>
3)如果1)和2)没有帮助,请尝试将生成的详细版本设置为诊断(msbuld键/ v:diag)。在日志中找到TFSNUnitTestRunner的所有调用,您将看到TFS上实际发生的情况。 编辑:*程序集*被声明为ItemGroup。使用@(Assemblies)访问项目:
<Message Text=\"Running nUnit tests from: @(Assemblies)\" />
属性$(Assemblies)在您的情况下始终为空。     

要回复问题请先登录注册