-
Notifications
You must be signed in to change notification settings - Fork 145
Expand file tree
/
Copy pathCommon.props
More file actions
98 lines (89 loc) · 3.27 KB
/
Copy pathCommon.props
File metadata and controls
98 lines (89 loc) · 3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<Project>
<PropertyGroup>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<!-- Keep the signing key text-encoded in source control and materialize it only in ignored intermediate output. -->
<StrongNameKeyBase64File>$(MSBuildThisFileDirectory)OpenTelemetry.AutoInstrumentation.snk.base64</StrongNameKeyBase64File>
<NuGetAudit>true</NuGetAudit>
<NuGetAuditMode>all</NuGetAuditMode>
<NuGetAuditLevel>low</NuGetAuditLevel>
<AnalysisLevel>latest-All</AnalysisLevel>
</PropertyGroup>
<UsingTask
TaskName="DecodeBase64File"
TaskFactory="RoslynCodeTaskFactory"
AssemblyFile="$([System.IO.Path]::Combine('$(MSBuildToolsPath)', 'Microsoft.Build.Tasks.Core.dll'))">
<ParameterGroup>
<SourceFile ParameterType="System.String" Required="true" />
<DestinationFile ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Linq" />
<Code Type="Fragment" Language="cs"><![CDATA[
var base64Text = string.Concat(File.ReadAllLines(SourceFile));
var decodedBytes = Convert.FromBase64String(base64Text);
var destinationInfo = new FileInfo(DestinationFile);
if (destinationInfo.Exists && destinationInfo.Length == decodedBytes.Length
&& File.ReadAllBytes(DestinationFile).SequenceEqual(decodedBytes))
{
return true;
}
var directory = Path.GetDirectoryName(DestinationFile);
if (!string.IsNullOrEmpty(directory))
{
Directory.CreateDirectory(directory);
}
var temporaryFile = DestinationFile + "." + Guid.NewGuid().ToString("N") + ".tmp";
try
{
File.WriteAllBytes(temporaryFile, decodedBytes);
try
{
if (File.Exists(DestinationFile))
{
File.Replace(temporaryFile, DestinationFile, null);
}
else
{
File.Move(temporaryFile, DestinationFile);
}
}
catch (IOException)
{
destinationInfo.Refresh();
if (!destinationInfo.Exists || destinationInfo.Length != decodedBytes.Length
|| !File.ReadAllBytes(DestinationFile).SequenceEqual(decodedBytes))
{
throw;
}
}
}
finally
{
if (File.Exists(temporaryFile))
{
File.Delete(temporaryFile);
}
}
]]></Code>
</Task>
</UsingTask>
<Target Name="GenerateAssemblyOriginatorKeyFile" BeforeTargets="ResolveKeySource" Condition="'$(SignAssembly)' == 'true'">
<PropertyGroup>
<AssemblyOriginatorKeyFile>$([System.IO.Path]::Combine('$(BaseIntermediateOutputPath)', 'OpenTelemetry.AutoInstrumentation.snk'))</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
<FileWrites Include="$(AssemblyOriginatorKeyFile)" />
</ItemGroup>
<DecodeBase64File SourceFile="$(StrongNameKeyBase64File)" DestinationFile="$(AssemblyOriginatorKeyFile)" />
</Target>
<!-- StyleCop -->
<ItemGroup>
<GlobalPackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556" PrivateAssets="all" />
<AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json" Link="stylecop.json" />
<Compile Include="$(MSBuildThisFileDirectory)GlobalSuppressions.cs" Link="GlobalSuppressions.solution.cs" />
</ItemGroup>
</Project>