Skip to content

Commit ceb8443

Browse files
authored
Merge pull request #1219 from scriptcs/dev
0.17.1
2 parents aa0f30e + 173c984 commit ceb8443

7 files changed

Lines changed: 64 additions & 4 deletions

File tree

build/ScriptCs.Version.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<PropertyGroup>
66
<MajorVersion>0</MajorVersion>
77
<MinorVersion>17</MinorVersion>
8-
<PatchVersion>0</PatchVersion>
8+
<PatchVersion>1</PatchVersion>
99

1010
<!-- Change this to set the build quality of the project. Use values like "alpha", "beta", "rc1", "rtm", etc. -->
1111
<!-- These values are used in SemVer, so make sure to always increase these alphabetically. -->
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Reflection;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace ScriptCs
9+
{
10+
public static class FrameworkUtils
11+
{
12+
private static string _frameworkName;
13+
public static string FrameworkName
14+
{
15+
get
16+
{
17+
if (_frameworkName == null)
18+
{
19+
//Thanks to Dave Glick for this code contribution
20+
var frameworkName = Assembly.GetExecutingAssembly().GetCustomAttributes(true)
21+
.OfType<System.Runtime.Versioning.TargetFrameworkAttribute>()
22+
.Select(x => x.FrameworkName)
23+
.FirstOrDefault();
24+
_frameworkName = frameworkName;
25+
}
26+
return _frameworkName;
27+
}
28+
}
29+
}
30+
}

src/ScriptCs.Core/ScriptCs.Core.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
<Compile Include="Extensions\EnumerableExtensions.cs" />
5252
<Compile Include="Extensions\MethodInfoExtensions.cs" />
5353
<Compile Include="FileSystemMigrator.cs" />
54+
<Compile Include="FrameworkUtils.cs" />
5455
<Compile Include="ILoggerConfigurator.cs" />
5556
<Compile Include="NullScriptLibraryComposer.cs" />
5657
<Compile Include="ReplCommands\ScriptPacksCommand.cs" />

src/ScriptCs.Hosting/Package/NugetInstallationProvider.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void Initialize()
3131
var path = Path.Combine(_fileSystem.CurrentDirectory, _fileSystem.PackagesFolder);
3232
_repositoryUrls = GetRepositorySources(path);
3333
var remoteRepository = new AggregateRepository(PackageRepositoryFactory.Default, _repositoryUrls, true);
34-
_manager = new PackageManager(remoteRepository, path);
34+
_manager = new ScriptCsPackageManager(remoteRepository, path);
3535
}
3636

3737
public IEnumerable<string> GetRepositorySources(string path)
@@ -71,9 +71,10 @@ public IEnumerable<string> GetRepositorySources(string path)
7171
public void InstallPackage(IPackageReference packageId, bool allowPreRelease = false)
7272
{
7373
Guard.AgainstNullArgument("packageId", packageId);
74-
74+
7575
var version = GetVersion(packageId);
7676
var packageName = packageId.PackageId + " " + (version == null ? string.Empty : packageId.Version.ToString());
77+
7778
_manager.InstallPackage(packageId.PackageId, version, allowPrereleaseVersions: allowPreRelease, ignoreDependencies: false);
7879
_logger.Info("Installed: " + packageName);
7980
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using System.Linq;
2+
using System.Reflection;
3+
using System.Runtime.Versioning;
4+
using NuGet;
5+
6+
namespace ScriptCs.Hosting.Package
7+
{
8+
//needed to allow forcing framework version for installation as the InstallPackage method that accepts version is protected and all other overloads force version to null!
9+
public class ScriptCsPackageManager : PackageManager
10+
{
11+
public ScriptCsPackageManager(IPackageRepository sourceRepository, string path) : base(sourceRepository, path)
12+
{
13+
}
14+
15+
public override void InstallPackage(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions)
16+
{
17+
base.InstallPackage(package, new FrameworkName(FrameworkUtils.FrameworkName), ignoreDependencies, allowPrereleaseVersions);
18+
}
19+
20+
public override void InstallPackage(string packageId, SemanticVersion version, bool ignoreDependencies, bool allowPrereleaseVersions)
21+
{
22+
var package = PackageRepositoryHelper.ResolvePackage(SourceRepository, LocalRepository, packageId, version, allowPrereleaseVersions);
23+
base.InstallPackage(package, new FrameworkName(FrameworkUtils.FrameworkName), ignoreDependencies, allowPrereleaseVersions);
24+
}
25+
}
26+
}

src/ScriptCs.Hosting/ScriptCs.Hosting.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
<Compile Include="Package\PackageContainer.cs" />
9090
<Compile Include="Package\PackageInstaller.cs" />
9191
<Compile Include="Package\PackageObject.cs" />
92+
<Compile Include="Package\ScriptCsPackageManager.cs" />
9293
<Compile Include="Properties\AssemblyInfo.cs" />
9394
<Compile Include="ReplCommands\OpenVSCommand.cs" />
9495
<Compile Include="RuntimeServices.cs" />

src/ScriptCs/Command/InstallCommand.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.IO;
44
using System.Runtime.Versioning;
55
using ScriptCs.Contracts;
6+
using ScriptCs.Hosting.Package;
67

78
namespace ScriptCs.Command
89
{
@@ -80,7 +81,7 @@ private IEnumerable<IPackageReference> GetPackages(string workingDirectory)
8081
yield break;
8182
}
8283

83-
yield return new PackageReference(_name, new FrameworkName(".NETFramework,Version=v4.0"), _version);
84+
yield return new PackageReference(_name, new FrameworkName(FrameworkUtils.FrameworkName), _version);
8485
}
8586
}
8687
}

0 commit comments

Comments
 (0)