Skip to content

Commit 20e062e

Browse files
authored
Fix packaging issues (#601)
1 parent 7c77f2d commit 20e062e

4 files changed

Lines changed: 50 additions & 34 deletions

File tree

Build/Tasks.Targets

Lines changed: 35 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,45 @@
44
<ParameterGroup>
55
<ZipFileName ParameterType="System.String" Required="true" />
66
<Files ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" />
7-
<WorkingDirectory ParameterType="System.String" Required="false" />
7+
<WorkingDirectory ParameterType="System.String" Required="true" />
88
</ParameterGroup>
99
<Task>
1010
<Reference Include="System.IO.Compression" />
1111
<Using Namespace="System.IO.Compression" />
1212
<Code Type="Fragment" Language="cs">
1313
<![CDATA[
14-
var cwd = string.Empty;
14+
string cwd = null;
1515
try {
16-
if(!string.IsNullOrWhiteSpace(WorkingDirectory)) {
17-
if(!Directory.Exists(WorkingDirectory)) {
18-
Log.LogError(string.Format("{0} doesn't exist", WorkingDirectory));
19-
return false;
20-
}
21-
cwd = Environment.CurrentDirectory;
22-
Environment.CurrentDirectory = WorkingDirectory;
16+
var di = new DirectoryInfo(WorkingDirectory);
17+
if (!di.Exists) {
18+
Log.LogError(string.Format("{0} doesn't exist", WorkingDirectory));
19+
return false;
2320
}
21+
cwd = Environment.CurrentDirectory;
22+
Environment.CurrentDirectory = di.FullName;
23+
2424
using (Stream zipStream = new FileStream(Path.GetFullPath(ZipFileName), FileMode.Create, FileAccess.Write))
2525
using (ZipArchive archive = new ZipArchive(zipStream, ZipArchiveMode.Create)) {
2626
foreach (ITaskItem fileItem in Files) {
27-
string filename = fileItem.ItemSpec;
28-
using (Stream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read))
29-
using (Stream fileStreamInZip = archive.CreateEntry(new FileInfo(filename).Name).Open())
27+
var filename = fileItem.ItemSpec;
28+
FileInfo fi = new FileInfo(filename);
29+
if (!fi.FullName.StartsWith(di.FullName)) {
30+
Log.LogError(string.Format("{0} not in {1}", filename, WorkingDirectory));
31+
return false;
32+
}
33+
var archivename = fi.FullName.Substring(di.FullName.Length).TrimStart(new char [] { '\\', '/' });
34+
using (Stream fileStream = new FileStream(fi.FullName, FileMode.Open, FileAccess.Read))
35+
using (Stream fileStreamInZip = archive.CreateEntry(archivename).Open())
3036
fileStream.CopyTo(fileStreamInZip);
3137
}
32-
}
38+
}
3339
return true;
3440
} catch (Exception ex) {
3541
Log.LogErrorFromException(ex);
3642
return false;
3743
} finally {
38-
if(!string.IsNullOrWhiteSpace(cwd)) {
39-
Environment.CurrentDirectory = cwd;
44+
if (cwd != null) {
45+
Environment.CurrentDirectory = cwd;
4046
}
4147
}
4248
]]>
@@ -53,22 +59,22 @@
5359
<Task>
5460
<Using Namespace="System.Text.RegularExpressions" />
5561
<Code Type="Fragment" Language="cs">
56-
<![CDATA[
57-
try {
58-
System.Text.RegularExpressions.Regex replaceRegex = new System.Text.RegularExpressions.Regex(Expression);
59-
foreach(ITaskItem item in Files) {
60-
string fileName = item.ItemSpec;
61-
Log.LogMessage(string.Format("Updating File \"{0}\".", fileName));
62-
string buffer = File.ReadAllText(fileName);
63-
buffer = replaceRegex.Replace(buffer, Replacement);
64-
File.WriteAllText(fileName, buffer);
65-
}
66-
} catch(Exception ex) {
62+
<![CDATA[
63+
try {
64+
System.Text.RegularExpressions.Regex replaceRegex = new System.Text.RegularExpressions.Regex(Expression);
65+
foreach(ITaskItem item in Files) {
66+
string fileName = item.ItemSpec;
67+
Log.LogMessage(string.Format("Updating File \"{0}\".", fileName));
68+
string buffer = File.ReadAllText(fileName);
69+
buffer = replaceRegex.Replace(buffer, Replacement);
70+
File.WriteAllText(fileName, buffer);
71+
}
72+
} catch(Exception ex) {
6773
Log.LogErrorFromException(ex);
6874
return false;
69-
}
70-
return true;
71-
]]>
75+
}
76+
return true;
77+
]]>
7278
</Code>
7379
</Task>
7480
</UsingTask>

Directory.Build.props

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,16 @@
2828
<InformationalVersion>$(MSBuildProjectName) $(MajorVersion).$(MinorVersion).$(MicroVersion) $(ReleaseLevel) $(ReleaseSerial)</InformationalVersion>
2929

3030
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
31+
32+
<!-- DisplayVersion is used by the msi project -->
33+
<ShortReleaseLevel Condition="'$(ReleaseLevel)' == 'alpha'">a</ShortReleaseLevel>
34+
<ShortReleaseLevel Condition="'$(ReleaseLevel)' == 'beta'">b</ShortReleaseLevel>
35+
<ShortReleaseLevel Condition="'$(ReleaseLevel)' == 'candidate'">rc</ShortReleaseLevel>
36+
<ShortReleaseLevel Condition="'$(ReleaseLevel)' == 'final'">f</ShortReleaseLevel>
37+
38+
<DisplayVersion Condition="'$(ReleaseLevel)' == 'final' and '$(MicroVersion)' == '0'">$(MajorVersion).$(MinorVersion)</DisplayVersion>
39+
<DisplayVersion Condition="'$(ReleaseLevel)' == 'final' and '$(MicroVersion)' != '0'">$(MajorVersion).$(MinorVersion).$(MicroVersion)</DisplayVersion>
40+
<DisplayVersion Condition="'$(ReleaseLevel)' != 'final'">$(MajorVersion).$(MinorVersion).$(MicroVersion)$(ShortReleaseLevel)$(ReleaseSerial)</DisplayVersion>
3141
</PropertyGroup>
3242

3343
<!-- Signing -->

Package/nuget/IronPython.nuspec

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@
1515
<tags>ironpython python dynamic dlr</tags>
1616
<dependencies>
1717
<group targetFramework="net45">
18-
<dependency id="DynamicLanguageRuntime" version="[1.2.2]" />
18+
<dependency id="DynamicLanguageRuntime" version="[1.2.3-alpha0]" />
1919
</group>
2020
<group targetFramework="netcoreapp2.0">
2121
<dependency id="System.Text.Encoding.CodePages" version="4.5.0" />
2222
<dependency id="Microsoft.Win32.Registry" version="4.5.0" />
23-
<dependency id="DynamicLanguageRuntime" version="[1.2.2]" />
23+
<dependency id="DynamicLanguageRuntime" version="[1.2.3-alpha0]" />
2424
</group>
2525
<group targetFramework="netcoreapp2.1">
2626
<dependency id="System.Text.Encoding.CodePages" version="4.5.0" />
2727
<dependency id="Microsoft.Win32.Registry" version="4.5.0" />
28-
<dependency id="DynamicLanguageRuntime" version="[1.2.2]" />
28+
<dependency id="DynamicLanguageRuntime" version="[1.2.3-alpha0]" />
2929
</group>
3030
<group targetFramework="netstandard2.0">
3131
<dependency id="System.Text.Encoding.CodePages" version="4.5.0" />
3232
<dependency id="Microsoft.Win32.Registry" version="4.5.0" />
33-
<dependency id="DynamicLanguageRuntime" version="[1.2.2]" />
33+
<dependency id="DynamicLanguageRuntime" version="[1.2.3-alpha0]" />
3434
</group>
3535
</dependencies>
3636
</metadata>

Src/DLR

0 commit comments

Comments
 (0)