69 lines
No EOL
3.2 KiB
XML
69 lines
No EOL
3.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup>
|
|
<CompileDependsOn>
|
|
OverrideAssemblyInfo;
|
|
$(CompileDependsOn);
|
|
</CompileDependsOn>
|
|
</PropertyGroup>
|
|
<Target Name="OverrideAssemblyInfo" Condition="'$(AssemblyVersionOverride)' != '' Or '$(AssemblyInformationalVersionOverride)' != ''">
|
|
<ItemGroup>
|
|
<OriginalAssemblyInfo Include="@(Compile)" Condition="%(Filename) == 'AssemblyInfo' And %(Extension) == '.cs'" />
|
|
<Compile Remove="@(OriginalAssemblyInfo)" />
|
|
</ItemGroup>
|
|
<Copy SourceFiles="@(OriginalAssemblyInfo)" DestinationFiles="@(OriginalAssemblyInfo->'$(IntermediateOutputPath)%(Filename)%(Extension)')">
|
|
<Output TaskParameter="DestinationFiles" ItemName="ModifiedAssemblyInfo"/>
|
|
</Copy>
|
|
<UpdateFile Condition="'$(AssemblyVersionOverride)' != ''"
|
|
Files="@(ModifiedAssemblyInfo)"
|
|
Regex="AssemblyVersion\(".*"\)"
|
|
ReplacementText="AssemblyVersion("$(AssemblyVersionOverride)")" />
|
|
<UpdateFile Condition="'$(AssemblyVersionOverride)' != ''"
|
|
Files="@(ModifiedAssemblyInfo)"
|
|
Regex="AssemblyFileVersion\(".*"\)"
|
|
ReplacementText="AssemblyFileVersion("$(AssemblyVersionOverride)")" />
|
|
<UpdateFile Condition="'$(AssemblyInformationalVersionOverride)' != ''"
|
|
Files="@(ModifiedAssemblyInfo)"
|
|
Regex="AssemblyInformationalVersion\(".*"\)"
|
|
ReplacementText="AssemblyInformationalVersion("$(AssemblyInformationalVersionOverride)")" />
|
|
<ItemGroup>
|
|
<Compile Include="@(ModifiedAssemblyInfo)" />
|
|
</ItemGroup>
|
|
</Target>
|
|
<UsingTask TaskName="UpdateFile" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
|
|
<ParameterGroup>
|
|
<Files ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" />
|
|
<Regex ParameterType="System.String" Required="true" />
|
|
<ReplacementText ParameterType="System.String" Required="true" />
|
|
</ParameterGroup>
|
|
<Task>
|
|
<Reference Include="System.Core" />
|
|
<Using Namespace="System" />
|
|
<Using Namespace="System.IO" />
|
|
<Using Namespace="System.Text.RegularExpressions" />
|
|
<Using Namespace="Microsoft.Build.Framework" />
|
|
<Using Namespace="Microsoft.Build.Utilities" />
|
|
<Code Type="Fragment" Language="cs">
|
|
<![CDATA[
|
|
try {
|
|
var rx = new System.Text.RegularExpressions.Regex(this.Regex);
|
|
for (int i = 0; i < Files.Length; ++i)
|
|
{
|
|
var path = Files[i].GetMetadata("FullPath");
|
|
if (!File.Exists(path)) continue;
|
|
|
|
var txt = File.ReadAllText(path);
|
|
txt = rx.Replace(txt, this.ReplacementText);
|
|
File.WriteAllText(path, txt);
|
|
}
|
|
return true;
|
|
}
|
|
catch (Exception ex) {
|
|
Log.LogErrorFromException(ex);
|
|
return false;
|
|
}
|
|
]]>
|
|
</Code>
|
|
</Task>
|
|
</UsingTask>
|
|
</Project> |