1

我需要你的帮助。我遇到了一种情况。我正在尝试将某些二进制文件复制到特定文件夹中。我将这些任务添加到 "AfterCompileSolution" 中。我知道这是不正确的,因为它会在每个解决方案编译后执行此步骤。

这是我的情况,我尝试添加像 SolutionFileName 这样的条件,但结果为空。由于 SolutionFileName 参数为空,因此未执行目标。

那么您知道我可以在解决方案构建之间使用的任何参数吗,即我只想在解决方案“A”完成后复制某些二进制文件,并且我希望这些参数成为“AfterCompileSolution”或“BeforeCompileSolution”的一部分

请建议

谢谢萨特什

4

1 回答 1

0

我已经有一段时间没有这样做了,但我相信您使用以下语法引用文件名:

<Target Name="AfterCompileSolution" DependsOnTargets="RandomPreReqTarget">       
    <SomeTask Condition="'%(SolutionToBuildItem.Identity)' == 'ConditionValue'" />
</Target>

您可以做的另一件很酷的事情是在您的 SolutionToBuild 项目中产品额外的属性,并将它们作为元数据引用,例如:

<SolutionToBuild Include="$(SolutionRoot)\$(SourceBranch)\RandomDirectory\Project.csproj">
  <Targets>Build</Targets>
  <Properties>OutDir=$(RandomDirectory);Configuration=$(Configuration);Platform=AnyCPU</Properties>
  <GAC>True</GAC>
</SolutionToBuild>

然后,您将能够像这样访问元数据:

<Target Name="AfterCompileSolution" DependsOnTargets="RandomPreReqTarget">       
    <SomeTask Condition="'%(SolutionToBuildItem.GAC)' == 'True'" />
</Target>
于 2015-02-12T14:14:17.173 回答