Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <llsan@microsoft.com>2018-12-14 12:58:38 +0300
committerLluis Sanchez <llsan@microsoft.com>2018-12-14 12:58:38 +0300
commit169ddeafec18417583feb5fd6dde31c1b4da4515 (patch)
tree726c7a42b6ccf5d21dcb2f14330e7dad964c2944
parent2bafc53724a1ef5ed7a8e44815b84ce783aa05a0 (diff)
parentce1db18fc957dbd79b54ee55bb7737c7377b9d61 (diff)
Merge remote-tracking branch 'origin/master' into release-8.0
-rw-r--r--main/build/MacOSX/BinaryCompatBaseline.txt7
-rw-r--r--main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpProject.fs3
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/RestoreTestBase.cs23
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/DotNetCoreRestoreTests.cs17
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/FileWatcherService.cs2
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs5
-rw-r--r--main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/FileWatcherTests.cs39
-rw-r--r--main/tests/test-projects/restore-netcore-offline/NuGet.config8
-rwxr-xr-xmain/tests/test-projects/restore-netcore-offline/dotnetcoreconsole.csproj8
-rw-r--r--main/tests/test-projects/restore-netcore-offline/dotnetcoreconsole.sln17
-rwxr-xr-xversion-checks2
12 files changed, 118 insertions, 15 deletions
diff --git a/main/build/MacOSX/BinaryCompatBaseline.txt b/main/build/MacOSX/BinaryCompatBaseline.txt
index aa2737e326..50dea197c6 100644
--- a/main/build/MacOSX/BinaryCompatBaseline.txt
+++ b/main/build/MacOSX/BinaryCompatBaseline.txt
@@ -178,12 +178,5 @@ In assembly 'Xamarin.AzureSupport, Version=1.0.0.0, Culture=neutral, PublicKeyTo
In assembly 'Xamarin.AzureSupport, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null': unable to resolve reference to 'Xamarin.Ide.Identity, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
In assembly 'Xamarin.Ide.Mac, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null': unable to resolve reference to 'MonoTouch.Hosting, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
In assembly 'Xamarin.iOSDesigner.MonoDevelop, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null': unable to resolve reference to 'MonoTouch.Hosting, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
-In assembly 'Xamarin.Mac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065': Unable to resolve member reference '!0[] System.Buffers.ArrayPool`1<System.Byte>::Rent(System.Int32)' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
-In assembly 'Xamarin.Mac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065': Unable to resolve member reference 'System.Boolean System.Buffers.MemoryHandle::get_HasPointer()' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
-In assembly 'Xamarin.Mac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065': Unable to resolve member reference 'System.Buffers.ArrayPool`1<!0> System.Buffers.ArrayPool`1<System.Byte>::get_Shared()' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
-In assembly 'Xamarin.Mac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065': Unable to resolve member reference 'System.Buffers.MemoryHandle System.ReadOnlyMemory`1<System.Byte>::Retain(System.Boolean)' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
In assembly 'Xamarin.Mac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065': Unable to resolve member reference 'System.Net.Http.Headers.HttpHeaderKind System.Net.Http.Headers.HttpHeaders::GetKnownHeaderKind(System.String)' from assembly 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
-In assembly 'Xamarin.Mac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065': Unable to resolve member reference 'System.Threading.Tasks.Task System.IO.Stream::WriteAsync(System.ReadOnlyMemory`1<System.Byte>,System.Threading.CancellationToken)' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
-In assembly 'Xamarin.Mac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065': Unable to resolve member reference 'System.Void System.Buffers.ArrayPool`1<System.Byte>::Return(!0[],System.Boolean)' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
-In assembly 'Xamarin.Mac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065': Unable to resolve type reference 'System.Buffers.ArrayPool`1' in 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
In assembly 'Xamarin.Mac, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065': Unable to resolve type reference 'System.Net.Http.Headers.HttpHeaderKind' in 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
diff --git a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpProject.fs b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpProject.fs
index ec99923dc8..45b298774a 100644
--- a/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpProject.fs
+++ b/main/external/fsharpbinding/MonoDevelop.FSharpBinding/FSharpProject.fs
@@ -27,6 +27,9 @@ module Project =
type FSharpProject() as self =
inherit DotNetProject()
+ do
+ self.RoslynLanguageName <- Microsoft.CodeAnalysis.LanguageNames.FSharp
+
// Keep the platforms combo of CodeGenerationPanelWidget in sync with this list
let supportedPlatforms = [| "anycpu"; "x86"; "x64"; "Itanium" |]
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/RestoreTestBase.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/RestoreTestBase.cs
index 108d690e2c..d32b11c11f 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/RestoreTestBase.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/RestoreTestBase.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+using System;
using System.IO;
using System.Linq;
using System.Threading;
@@ -92,10 +93,6 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
protected static Task RestoreDotNetCoreNuGetPackages (Solution solution)
{
var solutionManager = new MonoDevelopSolutionManager (solution);
- var context = new FakeNuGetProjectContext {
- LogToConsole = true
- };
-
var restoreManager = new MonoDevelopBuildIntegratedRestorer (solutionManager);
var projects = solution.GetAllDotNetProjects ().Select (p => new DotNetCoreNuGetProject (p));
@@ -120,5 +117,23 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
return context;
}
+
+ protected class PackagManagementEventsConsoleLogger : IDisposable
+ {
+ public PackagManagementEventsConsoleLogger ()
+ {
+ PackageManagementServices.PackageManagementEvents.PackageOperationMessageLogged += PackageOperationMessageLogged;
+ }
+
+ public void Dispose ()
+ {
+ PackageManagementServices.PackageManagementEvents.PackageOperationMessageLogged -= PackageOperationMessageLogged;
+ }
+
+ void PackageOperationMessageLogged (object sender, PackageOperationMessageLoggedEventArgs e)
+ {
+ Console.WriteLine (e.Message.ToString ());
+ }
+ }
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/DotNetCoreRestoreTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/DotNetCoreRestoreTests.cs
index 0a2b5da798..c8a043cf6c 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/DotNetCoreRestoreTests.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/DotNetCoreRestoreTests.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@@ -58,5 +59,21 @@ namespace MonoDevelop.PackageManagement.Tests
Assert.AreEqual ("4.5.0", fsharpCore.Version);
}
+
+ [Test]
+ public async Task OfflineRestore_NetCore21Project ()
+ {
+ FilePath solutionFileName = Util.GetSampleProject ("restore-netcore-offline", "dotnetcoreconsole.sln");
+ solution = (Solution)await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solutionFileName);
+ var project = solution.GetAllDotNetProjects ().Single ();
+
+ using (var logger = new PackagManagementEventsConsoleLogger ()) {
+ await RestoreDotNetCoreNuGetPackages (solution);
+ }
+
+ var packagesDirectory = solution.BaseDirectory.Combine ("packages-cache");
+ Assert.IsFalse (Directory.Exists (packagesDirectory));
+ Assert.IsTrue (File.Exists (project.BaseDirectory.Combine ("obj", "project.assets.json")));
+ }
}
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/FileWatcherService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/FileWatcherService.cs
index 76a7c8ee26..7d9dca37aa 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/FileWatcherService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/FileWatcherService.cs
@@ -284,7 +284,7 @@ namespace MonoDevelop.Projects
// The native file watcher sometimes generates a Changed, Created and Deleted event in
// that order from a single native file event. So check the file has been deleted before raising
// a FileRemoved event.
- if (!File.Exists (e.FullPath))
+ if (!File.Exists (e.FullPath) && !Directory.Exists (e.FullPath))
FileService.NotifyFileRemoved (e.FullPath);
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
index 9df75cfa4a..c08e57f1de 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
@@ -4569,7 +4569,7 @@ namespace MonoDevelop.Projects
void OnFileDeletedExternally (string fileName)
{
- if (File.Exists (fileName)) {
+ if (File.Exists (fileName) || Directory.Exists (fileName)) {
// File has not been deleted. The delete event could have been due to
// the file being saved. Saving with TextFileUtility will result in
// FileService.SystemRename being called to move a temporary file
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs
index 84f0fa4273..ac19f26664 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs
@@ -545,6 +545,10 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
[CommandHandler (ProjectCommands.NewFolder)]
public async void AddNewFolder ()
{
+ // Expand the project node before adding the file to the project. This fixes a problem where if the
+ // project node is collapsed and Refresh was used the project node would not expand and the new folder
+ // node would not be selected.
+ CurrentNode.Expanded = true;
Project project = CurrentNode.GetParentDataItem (typeof(Project), true) as Project;
string baseFolderPath = GetFolderPath (CurrentNode.DataItem);
@@ -565,7 +569,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
newFolder.Subtype = Subtype.Directory;
project.Files.Add (newFolder);
- CurrentNode.Expanded = true;
Tree.AddNodeInsertCallback (new ProjectFolder (directoryName, project), new TreeNodeCallback (OnFileInserted));
await IdeApp.ProjectOperations.SaveAsync (project);
diff --git a/main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/FileWatcherTests.cs b/main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/FileWatcherTests.cs
index 489aa5c847..8d129c8122 100644
--- a/main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/FileWatcherTests.cs
+++ b/main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/FileWatcherTests.cs
@@ -889,5 +889,44 @@ namespace MonoDevelop.Projects
Assert.AreEqual (1, directories.Count);
Assert.IsTrue (directories.First () == sol.BaseDirectory);
}
+
+ [Test]
+ public async Task CreateDirectory_AddFolderItemToProject_DirectoryDeletedEventIsNotFired ()
+ {
+ FilePath rootProject = Util.GetSampleProject ("FileWatcherTest", "Root.csproj");
+ string solFile = rootProject.ParentDirectory.Combine ("FileWatcherTest", "FileWatcherTest2.sln");
+ sol = (Solution)await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solFile);
+ var p = (DotNetProject)sol.Items [0];
+ p.UseAdvancedGlobSupport = true;
+ p.UseFileWatcher = true;
+ var file = p.Files.First (f => f.FilePath.FileName == "MyClass.cs");
+ ClearFileEventsCaptured ();
+ await FileWatcherService.Add (sol);
+
+ var newDirectory = p.BaseDirectory.Combine ("NewFolder");
+ Directory.CreateDirectory (newDirectory);
+
+ var newFolderItem = new ProjectFile (newDirectory);
+ newFolderItem.Subtype = Subtype.Directory;
+ p.Files.Add (newFolderItem);
+
+ var newDirectory2 = p.BaseDirectory.Combine ("NewFolder2");
+ var newFolderItem2 = new ProjectFile (newDirectory2);
+ newFolderItem2.Subtype = Subtype.Directory;
+ p.Files.Add (newFolderItem2);
+
+ Directory.CreateDirectory (newDirectory2);
+
+ await p.SaveAsync (Util.GetMonitor ());
+
+ TextFileUtility.WriteText (file.FilePath, string.Empty, Encoding.UTF8);
+ await WaitForFileChanged (file.FilePath);
+
+ AssertFileChanged (file.FilePath);
+ Assert.IsTrue (p.Files.Contains (newFolderItem));
+ Assert.IsTrue (p.Files.Contains (newFolderItem2));
+ Assert.IsFalse (filesRemoved.Any (f => f.FileName == newDirectory));
+ Assert.IsFalse (filesRemoved.Any (f => f.FileName == newDirectory2));
+ }
}
}
diff --git a/main/tests/test-projects/restore-netcore-offline/NuGet.config b/main/tests/test-projects/restore-netcore-offline/NuGet.config
new file mode 100644
index 0000000000..cd2b8fdaa0
--- /dev/null
+++ b/main/tests/test-projects/restore-netcore-offline/NuGet.config
@@ -0,0 +1,8 @@
+<configuration>
+ <config>
+ <add key="globalPackagesFolder" value="packages-cache" />
+ </config>
+ <packageSources>
+ <clear />
+ </packageSources>
+</configuration> \ No newline at end of file
diff --git a/main/tests/test-projects/restore-netcore-offline/dotnetcoreconsole.csproj b/main/tests/test-projects/restore-netcore-offline/dotnetcoreconsole.csproj
new file mode 100755
index 0000000000..1915f6bad9
--- /dev/null
+++ b/main/tests/test-projects/restore-netcore-offline/dotnetcoreconsole.csproj
@@ -0,0 +1,8 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <OutputType>Exe</OutputType>
+ <TargetFramework>netcoreapp2.1</TargetFramework>
+ </PropertyGroup>
+
+</Project> \ No newline at end of file
diff --git a/main/tests/test-projects/restore-netcore-offline/dotnetcoreconsole.sln b/main/tests/test-projects/restore-netcore-offline/dotnetcoreconsole.sln
new file mode 100644
index 0000000000..3436bfb1aa
--- /dev/null
+++ b/main/tests/test-projects/restore-netcore-offline/dotnetcoreconsole.sln
@@ -0,0 +1,17 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dotnetcoreconsole", "dotnetcoreconsole.csproj", "{8E8688F7-4FB5-4E0C-A64D-DA2B8E039CC5}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8E8688F7-4FB5-4E0C-A64D-DA2B8E039CC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8E8688F7-4FB5-4E0C-A64D-DA2B8E039CC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8E8688F7-4FB5-4E0C-A64D-DA2B8E039CC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8E8688F7-4FB5-4E0C-A64D-DA2B8E039CC5}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/version-checks b/version-checks
index 3183007de0..ffdbb2af0c 100755
--- a/version-checks
+++ b/version-checks
@@ -17,7 +17,7 @@ DEP[0]=md-addins
DEP_NAME[0]=MDADDINS
DEP_PATH[0]=${top_srcdir}/../md-addins
DEP_MODULE[0]=git@github.com:xamarin/md-addins.git
-DEP_NEEDED_VERSION[0]=2fb8cade4af6af205dcda4a17ce9c007dfa4ed4f
+DEP_NEEDED_VERSION[0]=c768460c0306535b7b832464a171b376c599d679
DEP_BRANCH_AND_REMOTE[0]="release-8.0 origin/release-8.0"
# heap-shot