Skip to content

Commit bc9d390

Browse files
committed
Copy native binaries
This allows to run the executable from the NuGet package on Linux (if we manually rename/copy the LibGit2Sharp.dll.config file to GitVersion.exe.config. We can't do that automatically because the config file prevents GitVersion.exe from working properly on Windows).
1 parent 8917137 commit bc9d390

File tree

2 files changed

+10
-17
lines changed

2 files changed

+10
-17
lines changed

src/GitVersionExe/GitVersionExe.csproj

+7-14
Original file line numberDiff line numberDiff line change
@@ -140,17 +140,12 @@
140140
<Exec Command="$(Runtime) &quot;$(SolutionDir)/packages/ILRepack.2.0.7/tools/ILRepack.exe&quot; /allowDup /keyfile:&quot;$(SolutionDir)key.snk&quot; /out:&quot;$(TargetDir)ILMergeTemp\$(TargetFileName)&quot; &quot;$(TargetPath)&quot; &quot;$(TargetDir)GitVersionCore.dll&quot; &quot;$(TargetDir)GitTools.Core.dll&quot; &quot;$(TargetDir)LibGit2Sharp.dll&quot; &quot;$(TargetDir)YamlDotNet.dll&quot; /target:exe /targetplatform:&quot;v4,$(FrameworkPathOverride)&quot; /ndebug /internalize " />
141141
<ItemGroup>
142142
<TempFiles Include="$(TargetDir)ILMergeTemp\*.*" />
143+
<NativeBinaries Include="$(TargetDir)NativeBinaries\**\*.*"/>
144+
<WindowsBinaries Include="$(TargetDir)NativeBinaries\**\*.dll"/>
143145
</ItemGroup>
144-
<CreateItem Include="$(TargetDir)NativeBinaries\amd64\*.dll">
145-
<Output TaskParameter="Include" ItemName="amd64" />
146-
</CreateItem>
147-
<CreateItem Include="$(TargetDir)NativeBinaries\x86\*.dll">
148-
<Output TaskParameter="Include" ItemName="x86" />
149-
</CreateItem>
150146
<!-- NugetExeBuild -->
151147
<MakeDir Directories="$(BuildDir)NuGetExeBuild" />
152-
<Copy SourceFiles="@(amd64)" DestinationFolder="$(BuildDir)NuGetExeBuild\tools\NativeBinaries\amd64" />
153-
<Copy SourceFiles="@(x86)" DestinationFolder="$(BuildDir)NuGetExeBuild\tools\NativeBinaries\x86" />
148+
<Copy SourceFiles="@(NativeBinaries)" DestinationFiles="@(NativeBinaries->'$(BuildDir)NuGetExeBuild\tools\NativeBinaries\%(RecursiveDir)%(Filename)%(Extension)')" />
154149
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)NuGetExeBuild\tools" Condition="Exists('$(OutputPath)GitVersion.pdb')"/>
155150
<Copy SourceFiles="$(OutputPath)GitVersion.exe.mdb" DestinationFolder="$(BuildDir)NuGetExeBuild\tools" Condition="Exists('$(OutputPath)GitVersion.exe.mdb')"/>
156151
<Copy SourceFiles="$(OutputPath)ILMergeTemp\GitVersion.exe" DestinationFolder="$(BuildDir)NuGetExeBuild\tools" />
@@ -160,17 +155,15 @@
160155
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(BuildDir)NuGetExeBuild" MetadataAssembly="$(OutputPath)ILMergeTemp\GitVersion.exe" Version="$(GitVersion_NuGetVersion)" />
161156
<!-- NugetCommandLineBuild -->
162157
<MakeDir Directories="$(BuildDir)NuGetCommandLineBuild" />
163-
<Copy SourceFiles="@(amd64)" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools\NativeBinaries\amd64" />
164-
<Copy SourceFiles="@(x86)" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools\NativeBinaries\x86" />
158+
<Copy SourceFiles="@(NativeBinaries)" DestinationFiles="@(NativeBinaries->'$(BuildDir)NuGetCommandLineBuild\tools\NativeBinaries\%(RecursiveDir)%(Filename)%(Extension)')" />
165159
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" Condition="Exists('$(OutputPath)GitVersion.pdb')"/>
166160
<Copy SourceFiles="$(OutputPath)GitVersion.exe.mdb" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" Condition="Exists('$(OutputPath)GitVersion.exe.mdb')"/>
167161
<Copy SourceFiles="$(OutputPath)ILMergeTemp\GitVersion.exe" DestinationFolder="$(BuildDir)NuGetCommandLineBuild\tools" />
168162
<Copy SourceFiles="$(ProjectDir)NugetAssets\GitVersion.CommandLine.nuspec" DestinationFolder="$(BuildDir)NuGetCommandLineBuild" />
169163
<PepitaPackage.CreatePackageTask NuGetBuildDirectory="$(BuildDir)NuGetCommandLineBuild" MetadataAssembly="$(OutputPath)ILMergeTemp\GitVersion.exe" Version="$(GitVersion_NuGetVersion)" />
170164
<!-- VsoBuildTask -->
171165
<MakeDir Directories="$(BuildDir)GitVersionVsoTaskBuild" />
172-
<Copy SourceFiles="@(amd64)" DestinationFolder="$(BuildDir)GitVersionVsoTaskBuild\NativeBinaries\amd64" />
173-
<Copy SourceFiles="@(x86)" DestinationFolder="$(BuildDir)GitVersionVsoTaskBuild\NativeBinaries\x86" />
166+
<Copy SourceFiles="@(NativeBinaries)" DestinationFiles="@(NativeBinaries->'$(BuildDir)GitVersionVsoTaskBuild\NativeBinaries\%(RecursiveDir)%(Filename)%(Extension)')" />
174167
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)GitVersionVsoTaskBuild" Condition="Exists('$(OutputPath)GitVersion.pdb')" />
175168
<Copy SourceFiles="$(OutputPath)GitVersion.exe.mdb" DestinationFolder="$(BuildDir)GitVersionVsoTaskBuild" Condition="Exists('$(OutputPath)GitVersion.exe.mdb')" />
176169
<Copy SourceFiles="$(OutputPath)ILMergeTemp\GitVersion.exe" DestinationFolder="$(BuildDir)GitVersionVsoTaskBuild" />
@@ -179,8 +172,8 @@
179172
<Exec Command="powershell -ExecutionPolicy RemoteSigned -NoProfile &quot;$(BuildDir)\Update-GitVersionVsoTaskVersion.ps1 $(BuildDir)GitVersionVsoTaskBuild\task.json $(GitVersion_Major) $(GitVersion_Minor) $(GitVersion_Patch)&quot;" WorkingDirectory="$(BuildDir)" Condition="'$(GitVersion_SemVer)' != ''" />
180173
<!-- Gem -->
181174
<MakeDir Directories="$(BuildDir)GemBuild" />
182-
<Copy SourceFiles="@(amd64)" DestinationFolder="$(BuildDir)GemBuild\bin\NativeBinaries\amd64" />
183-
<Copy SourceFiles="@(x86)" DestinationFolder="$(BuildDir)GemBuild\bin\NativeBinaries\x86" />
175+
<!-- Gem can only treat files it knows about, so it throws an error for .so and .dylib files when building on Windows -->
176+
<Copy SourceFiles="@(WindowsBinaries)" DestinationFiles="@(WindowsBinaries->'$(BuildDir)GemBuild\bin\NativeBinaries\%(RecursiveDir)%(Filename)%(Extension)')" />
184177
<Copy SourceFiles="$(OutputPath)GitVersion.pdb" DestinationFolder="$(BuildDir)GemBuild\bin" Condition="Exists('$(OutputPath)GitVersion.pdb')" />
185178
<Copy SourceFiles="$(OutputPath)GitVersion.exe.mdb" DestinationFolder="$(BuildDir)GemBuild\bin" Condition="Exists('$(OutputPath)GitVersion.exe.mdb')" />
186179
<Copy SourceFiles="$(OutputPath)ILMergeTemp\GitVersion.exe" DestinationFolder="$(BuildDir)GemBuild\bin" />

src/GitVersionTask/GitVersionTask.csproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@
115115
<TempFiles Include="$(TargetDir)ILMergeTemp\*.*" />
116116
</ItemGroup>
117117
<MakeDir Directories="$(BuildDir)NuGetTaskBuild" />
118-
<CreateItem Include="$(TargetDir)NativeBinaries\**\*.dll">
119-
<Output TaskParameter="Include" ItemName="NativeBinaries" />
120-
</CreateItem>
118+
<ItemGroup>
119+
<NativeBinaries Include="$(TargetDir)NativeBinaries\**\*.*"/>
120+
</ItemGroup>
121121
<Copy SourceFiles="@(NativeBinaries)" DestinationFiles="@(NativeBinaries->'$(BuildDir)NuGetTaskBuild\NativeBinaries\%(RecursiveDir)%(Filename)%(Extension)')" />
122122
<!-- Workaround for issue with DllMap. Mono will currently always prepend lib to start of target dll name. -->
123123
<CreateItem Include="$(TargetDir)NativeBinaries\**\*.so;$(TargetDir)NativeBinaries\**\*.dylib">

0 commit comments

Comments
 (0)