Это - в значительной степени это - который даст Вам прошедшее время высокого разрешения. Если, конечно, кто-то не смешивает с системными часами.
Целевые объекты MSBuild не предназначены для получения параметров. Вместо этого они используют свойства, которые вы для них определяете.
<PropertyGroup>
<Environment>myValue</Environment>
</PropertyGroup>
<Target Name="Deploy">
<!-- Use the Environment property -->
</Target>
Однако распространенным сценарием является вызов Target несколько раз с разными параметрами (например, развертывание нескольких веб-сайтов). В этом случае я использую задачу MSBuild MSBuild
и отправляю параметры как свойства:
<Target Name="DoDeployments">
<MSBuild Projects ="$(MSBuildProjectFullPath)"
Properties="VDir=MyWebsite;Path=C:\MyWebsite;Environment=$(Environment)"
Targets="Deploy" />
<MSBuild Projects ="$(MSBuildProjectFullPath)"
Properties="VDir=MyWebsite2;Path=C:\MyWebsite2;Environment=$(Environment)"
Targets="Deploy" />
</Target>
$ (MSBuildProjectFullPath)
- это полный путь к текущему сценарию MSBuild на случай, если вы не хотите отправлять «Развернуть» в другой файл.
Надеюсь, это поможет!
Возможно, лучший способ сделать это в MSBuild, но в Ant я бы использовал глобальные свойства для передачи информации от одной задачи к другой. Это было паршивое решение, но в то время я не видел лучшего пути. У вас должна быть возможность сделать это в MSBuild, но имейте в виду, что вам нужно будет использовать задачу CreateProperty
для динамического назначения свойства.
С другой стороны, довольно легко реализовать задачи в C # (или VB, или что-то еще). Может быть, это лучшее решение для вас.
<CreateProperty
Value="file1">
<Output
TaskParameter="Value"
PropertyName="filename" />
</CreateProperty>
<CallTarget Targets="Deploy"/>
<Message Text="$(filename)"/>
<CreateProperty
Value="file2">
<Output
TaskParameter="Value"
PropertyName="filename" />
</CreateProperty>
<Message Text="$(filename)"/>
<CallTarget Targets="Deploy"/>