Последние 2 дня я потратил, пытаясь понять, как использовать задачу SvnInfo в пакете задач сообщества MSBuild относительно.Это работает на моей машине, потому что я использовал установщик.Хотя, конечно, я должен быть в состоянии заставить его работать с относительным путем.Если я не установлю пакет на CI-сервере, я смогу сохранить пакет в svn, и когда ci-сервер получит весь код для его сборки, сценарий сборки, который я написал, похоже, попытается ссылаться на задачии dll и т. д. с диска c: где он обычно устанавливается, но не существует.Я не уверен почему.Даже если я использую свойство для ссылки на относительную задачу, а затем ссылаюсь на свойство по всей задаче, оно все равно кажется ошибочным.
Я хочу получить номер ревизии SVN из Subversion (наша SVN), а затем обновить номер ревизии сборки.Так что мы можем связать то, что было реализовано, с тем, что было изменено для этого выпуска.В той небольшой документации, которую я мог найти для пакета сообщества msbuild, говорилось, что я должен использовать только клиент, но единственной, которую я смог найти для использования, был slik svn.Кажется, что он работает локально, но почему-то это тоже неправильно ... я должен придерживаться того же вкуса SVN.
ЕСЛИ у кого-то есть какие-либо предложения, улучшения или ссылки, которые он смог найти, но я не смог бы ... это было бы очень признательно.
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="4.0">
<PropertyGroup>
<RevisionNumber Condition=" '$(RevisionNumber)' == '' ">x</RevisionNumber>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
</PropertyGroup>
<!-- 1 -->
<Import Project=".\ThirdParty\Tools\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<UsingTask AssemblyFile=".\ThirdParty\Tools\MyMSBuildExtensions\BuildTasks.MSBuildTaks.dll"
TaskName="BuildTasks.MSBuildTasks.AssemblyInfoReader" />
<UsingTask AssemblyFile="$(MSBuildCommunityTasksPath)MSBuild.Community.Tasks.dll"
TaskName="MSBuild.Community.Tasks.Subversion.SvnInfo" />
<ItemGroup>
<!-- Required here in order to use the outDir syntax in the compile target - useage "@(BuildArtifacts)" -->
<BuildArtifacts Include=".\buildartifacts\" />
<SolutionFile Include=".\OnlineSales.sln" />
</ItemGroup>
<ItemGroup>
<NUnit Include=".\ThirdParty\Tools\NUnit\nunit-console.exe" />
<TestAssembly Include=".\buildArtifacts\OnlineSales.Tests.dll" />
<TestResults Include=".\buildartifacts\TestResults.xml" />
</ItemGroup>
<Target Name="Clean" >
<RemoveDir Directories="@(BuildArtifacts)" />
<Message Text="CLEAN COMPLETED." Importance="high" />
</Target>
<Target Name="Init" DependsOnTargets="Clean">
<MakeDir Directories="@(BuildArtifacts)" />
<Message Text="BUILDARTIFACTS DIRECTORY HAS BEEN CREATED." Importance="high" />
</Target>
<Target Name="Compile" DependsOnTargets="Init">
<SvnInfo RepositoryPath="https://cnfglfcdv01/svn/Primary/Users/kdonde/"
UserName="user"
Password="password"
ToolPath=".\ThirdParty\Tools\SlikSvn" >
<!-- 2 -->
<Output TaskParameter="Revision" PropertyName="RevisionNumber" />
</SvnInfo>
<Message Text="SVN INFO HAS BEEN EXECUTED." Importance="high" />
<Message Text="$(RevisionNumber) :================" Importance="high" />
<Message Text="$(MSBuildCommunityTasksPath) :================" Importance="high" />
<!-- 3 -->
<FileUpdate Files=".\Fit4Less.OnlineSales\Properties\AssemblyInfo.cs"
Regex="(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="$1.$2.$3.$(RevisionNumber)" />
<Message Text="AssemblyInfo.cs has been updated with version info." />
<MSBuild Projects="@(SolutionFile)"
Targets="Rebuild"
Properties="OutDir=%(BuildArtifacts.FullPath);Configuration=$(Configuration)" />
<Message Text="BUILD HAS COMPLETED."
Importance="high" />
</Target>
<!-- 4 -->
<Target Name="Deploy"
DependsOnTargets="Compile">
<AssemblyInfoReader Path=".\OnlineSales\Properties\AssemblyInfo.cs"
Property="AssemblyVersion" >
<Output TaskParameter="Value"
ItemName="Version" />
</AssemblyInfoReader>
<Message Text="ASSEMBLYINFOREADER HAS COMPLETED."
Importance="high" />
</Target>
<Target Name="Test" DependsOnTargets ="Compile">
<Exec Command="@(NUnit) @(TestAssembly) /xml=@(TestResults)" />
<Message Text="UNIT TESTS HAVE COMPLETED."
Importance="high" />
</Target>
</Project>