b0ee5db411
If there are shims packaged by convention in nupkg. Shim Repository will simply copy it to the right location. The query interface ToolPackageInstance will be in charge of finding the shim folder and filter the right RID. Shim Repository will pick the right file after the folder is located since Shim Repository knows the shim name and it also book keep the files at uninstallation. During development, due to the wrong adapter level. The mock duplicated too much logic. So, I corrected the abstraction level to lower (only create shim). And replaced the existing mock with a much smaller one without any atomic control and file move, copy logic. At the same time. The chmod, which is a IO action, causes problem during tests. So I added adapter layer to it and put it in Util.
80 lines
4.7 KiB
XML
80 lines
4.7 KiB
XML
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup>
|
|
<TargetFramework>$(CliTargetFramework)</TargetFramework>
|
|
<RuntimeFrameworkVersion>$(MicrosoftNETCoreAppPackageVersion)</RuntimeFrameworkVersion>
|
|
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
|
|
<AssemblyOriginatorKeyFile>../../tools/Key.snk</AssemblyOriginatorKeyFile>
|
|
<SignAssembly>true</SignAssembly>
|
|
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
|
|
<AssetTargetFallback>$(AssetTargetFallback);dotnet5.4;portable-net451+win8</AssetTargetFallback>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\src\dotnet\dotnet.csproj" />
|
|
<ProjectReference Include="..\..\src\Microsoft.DotNet.Configurer\Microsoft.DotNet.Configurer.csproj" />
|
|
<ProjectReference Include="..\..\src\Microsoft.DotNet.InternalAbstractions\Microsoft.DotNet.InternalAbstractions.csproj" />
|
|
<ProjectReference Include="..\Microsoft.DotNet.Tools.Tests.Utilities\Microsoft.DotNet.Tools.Tests.Utilities.csproj" />
|
|
<ProjectReference Include="..\Microsoft.DotNet.Tools.Tests.ComponentMocks\Microsoft.DotNet.Tools.Tests.ComponentMocks.csproj" />
|
|
<ProjectReference Include="..\..\src\Microsoft.DotNet.Cli.Utils\Microsoft.DotNet.Cli.Utils.csproj" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
|
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
|
<PackageReference Include="FluentAssertions" Version="4.18.0" />
|
|
<PackageReference Include="Moq" Version="4.7.25" />
|
|
<PackageReference Include="xunit" Version="2.2.0" />
|
|
<PackageReference Include="System.ComponentModel.TypeConverter" Version="4.3.0" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Update="DotnetToolSettingsMissing.xml">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
<None Update="DotnetToolSettingsMalformed.xml">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
<None Update="DotnetToolSettingsGolden.xml">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
<None Update="DotnetToolSettingsMissingVersion.xml">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
<None Update="DotnetToolSettingsMajorHigherVersion.xml">
|
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
</None>
|
|
|
|
<Compile Remove="SampleGlobalTool/**" />
|
|
<Content Remove="SampleGlobalTool/**" />
|
|
<EmbeddedResource Remove="SampleGlobalTool/**" />
|
|
<None Remove="SampleGlobalTool/**" />
|
|
|
|
<Compile Remove="SampleGlobalToolWithShim/**" />
|
|
<Content Remove="SampleGlobalToolWithShim/**" />
|
|
<EmbeddedResource Remove="SampleGlobalToolWithShim/**" />
|
|
<None Remove="SampleGlobalToolWithShim/**" />
|
|
</ItemGroup>
|
|
|
|
<UsingTask TaskName="DownloadFile" AssemblyFile="$(CLIBuildDll)" />
|
|
|
|
<Target Name="CreateNupkgFromSource" BeforeTargets="Build">
|
|
<PropertyGroup>
|
|
<testAssetSourceRoot>$(BaseOutputPath)/TestAsset/SampleGlobalTool</testAssetSourceRoot>
|
|
</PropertyGroup>
|
|
<Copy SourceFiles="SampleGlobalTool/DotnetToolSettings.xml" DestinationFolder="$(testAssetSourceRoot)" />
|
|
<MSBuild BuildInParallel="False" Projects="SampleGlobalTool/consoledemo.csproj" Targets="Restore;Build;Publish" Properties="Configuration=Release;BaseOutputPath=$(testAssetSourceRoot)/bin/">
|
|
</MSBuild>
|
|
<MSBuild BuildInParallel="False" Projects="SampleGlobalTool/consoledemo.csproj" Targets="pack" Properties="Configuration=Release;NuspecFile=includepublish.nuspec;NuspecBasePath=$(testAssetSourceRoot);PackageOutputPath=$(OutputPath)/TestAssetLocalNugetFeed">
|
|
</MSBuild>
|
|
</Target>
|
|
|
|
<Target Name="CreateNupkgWithShimFromSource" BeforeTargets="Build">
|
|
<PropertyGroup>
|
|
<testAssetSourceRoot>$(BaseOutputPath)/TestAsset/SampleGlobalToolWithShim</testAssetSourceRoot>
|
|
</PropertyGroup>
|
|
<Copy SourceFiles="SampleGlobalToolWithShim/DotnetToolSettings.xml" DestinationFolder="$(testAssetSourceRoot)" />
|
|
<Copy SourceFiles="SampleGlobalToolWithShim/dummyshim" DestinationFolder="$(testAssetSourceRoot)" />
|
|
<Copy SourceFiles="SampleGlobalToolWithShim/dummyshim.exe" DestinationFolder="$(testAssetSourceRoot)" />
|
|
<MSBuild BuildInParallel="False" Projects="SampleGlobalToolWithShim/consoledemo.csproj" Targets="Restore;Build;Publish" Properties="Configuration=Release;BaseOutputPath=$(testAssetSourceRoot)/bin/">
|
|
</MSBuild>
|
|
<MSBuild BuildInParallel="False" Projects="SampleGlobalToolWithShim/consoledemo.csproj" Targets="pack" Properties="Configuration=Release;NuspecFile=includepublish.nuspec;NuspecBasePath=$(testAssetSourceRoot);PackageOutputPath=$(OutputPath)/TestAssetLocalNugetFeed">
|
|
</MSBuild>
|
|
</Target>
|
|
</Project>
|