mirror of https://github.com/winsw/winsw
103 lines
4.6 KiB
XML
103 lines
4.6 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<OutputType>Exe</OutputType>
|
|
<TargetFrameworks>net461;net5.0</TargetFrameworks>
|
|
<LangVersion>preview</LangVersion>
|
|
<Nullable>enable</Nullable>
|
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
<PublishTrimmed>true</PublishTrimmed>
|
|
<TrimMode>Link</TrimMode>
|
|
|
|
<AssemblyTitle>Windows Service Wrapper</AssemblyTitle>
|
|
<Description>Allows arbitrary process to run as a Windows service by wrapping it.</Description>
|
|
<Company>CloudBees, Inc.</Company>
|
|
<Product>Windows Service Wrapper</Product>
|
|
<Copyright>Copyright (c) 2008-2020 Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees, Inc., Oleg Nenashev and other contributors</Copyright>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(TargetFramework)' == 'net5.0' AND '$(RuntimeIdentifier)' != ''">
|
|
<PublishSingleFile>true</PublishSingleFile>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(TargetFramework)' != 'net5.0'">
|
|
<ILMergeVersion>3.0.41</ILMergeVersion>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="System.CommandLine" Version="2.0.0-beta1.20303.1" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(TargetFramework)' == 'net5.0'">
|
|
<PackageReference Include="System.ServiceProcess.ServiceController" Version="4.7.0" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(TargetFramework)' != 'net5.0'">
|
|
<PackageReference Include="ilmerge" Version="$(ILMergeVersion)" />
|
|
<Reference Include="System.ServiceProcess" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\WinSW.Core\WinSW.Core.csproj" />
|
|
<ProjectReference Include="..\WinSW.Plugins\WinSW.Plugins.csproj" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(TargetFramework)' != 'net5.0'">
|
|
<ProjectReference Include="..\WinSW.Tasks\WinSW.Tasks.csproj">
|
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
|
|
<Target Name="PublishCoreZip" AfterTargets="Publish" Condition="'$(TargetFramework)' == 'net5.0' and '$(IncludeNativeLibrariesInSingleFile)' != 'true'">
|
|
|
|
<MakeDir Directories="$(ArtifactsPublishDir)" />
|
|
<ZipDirectory SourceDirectory="$(PublishDir)" DestinationFile="$(ArtifactsPublishDir)WinSW.NETCore.$(PlatformTarget).zip" Overwrite="true" />
|
|
|
|
</Target>
|
|
|
|
<Target Name="PublishCoreExe" AfterTargets="Publish" Condition="'$(TargetFramework)' == 'net5.0' and '$(IncludeNativeLibrariesInSingleFile)' == 'true'">
|
|
|
|
<MakeDir Directories="$(ArtifactsPublishDir)" />
|
|
<Copy SourceFiles="$(PublishDir)$(TargetName).exe" DestinationFiles="$(ArtifactsPublishDir)WinSW.NETCore.$(PlatformTarget).exe" />
|
|
|
|
</Target>
|
|
|
|
<!-- Merge plugins and other DLLs into the executable -->
|
|
<Target Name="Merge" BeforeTargets="AfterBuild" Condition="'$(TargetFramework)' != 'net5.0'">
|
|
|
|
<PropertyGroup Condition="'$(TargetFramework)' == 'net461'">
|
|
<TargetFrameworkSuffix>NET461</TargetFrameworkSuffix>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<InputAssemblies>"$(OutDir)$(TargetFileName)"</InputAssemblies>
|
|
<InputAssemblies>$(InputAssemblies) "$(OutDir)WinSW.Core.dll"</InputAssemblies>
|
|
<InputAssemblies>$(InputAssemblies) "$(OutDir)WinSW.Plugins.dll"</InputAssemblies>
|
|
<InputAssemblies>$(InputAssemblies) "$(OutDir)log4net.dll"</InputAssemblies>
|
|
<InputAssemblies>$(InputAssemblies) "$(OutDir)System.CommandLine.dll"</InputAssemblies>
|
|
<InputAssemblies>$(InputAssemblies) "$(OutDir)System.Buffers.dll"</InputAssemblies>
|
|
<InputAssemblies>$(InputAssemblies) "$(OutDir)System.Memory.dll"</InputAssemblies>
|
|
<InputAssemblies>$(InputAssemblies) "$(OutDir)System.Numerics.Vectors.dll"</InputAssemblies>
|
|
<InputAssemblies>$(InputAssemblies) "$(OutDir)System.Runtime.CompilerServices.Unsafe.dll"</InputAssemblies>
|
|
<InputAssemblies>$(InputAssemblies) "$(OutDir)System.ValueTuple.dll"</InputAssemblies>
|
|
<OutputAssembly>"$(ArtifactsPublishDir)WinSW.$(TargetFrameworkSuffix).exe"</OutputAssembly>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<ILMerge>$(NuGetPackageRoot)ilmerge\$(ILMergeVersion)\tools\net452\ILMerge.exe</ILMerge>
|
|
<ILMergeArgs>/targetplatform:v4.5 /out:$(OutputAssembly) $(InputAssemblies)</ILMergeArgs>
|
|
<ILMergeCommand>"$(ILMerge)" $(ILMergeArgs)</ILMergeCommand>
|
|
</PropertyGroup>
|
|
|
|
<MakeDir Directories="$(ArtifactsPublishDir)" />
|
|
<Exec Command="$(ILMergeCommand)" />
|
|
|
|
</Target>
|
|
|
|
<UsingTask TaskName="WinSW.Tasks.Trim" AssemblyFile="$(ArtifactsBinDir)WinSW.Tasks\$(Configuration)\net461\WinSW.Tasks.dll" />
|
|
<Target Name="Trim" AfterTargets="Merge" Condition="'$(TargetFramework)' != 'net5.0'">
|
|
<Trim Path="$(ArtifactsPublishDir)WinSW.$(TargetFrameworkSuffix).exe" />
|
|
</Target>
|
|
|
|
</Project>
|