Created
February 9, 2016 16:06
-
-
Save alanmcgovern/5794eb9b6e61eea61973 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildFileFormat.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildFileFormat.cs | |
index 12a69d7..e4a7060 100644 | |
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildFileFormat.cs | |
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildFileFormat.cs | |
@@ -174,7 +174,9 @@ namespace MonoDevelop.Projects.MSBuild | |
internal async Task WriteFile (FilePath file, object obj, ProgressMonitor monitor) | |
{ | |
if (slnFileFormat.CanWriteFile (obj, this)) { | |
+ Console.WriteLine ("await slnFileFormat.WriteFile (file, obj, true, monitor);"); | |
await slnFileFormat.WriteFile (file, obj, true, monitor); | |
+ Console.WriteLine ("Done await slnFileFormat.WriteFile (file, obj, true, monitor);"); | |
} else { | |
throw new NotSupportedException (); | |
} | |
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs | |
index 187da6c..dcb7fbf 100644 | |
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs | |
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/MSBuildProject.cs | |
@@ -359,7 +359,9 @@ namespace MonoDevelop.Projects.MSBuild | |
public Task<bool> SaveAsync (string fileName) | |
{ | |
+ Console.WriteLine ("MSBuildProject.SaveAsync"); | |
return Task.Run (() => { | |
+ Console.WriteLine ("MSBuildProject.SaveAsync - running it"); | |
string content = SaveToString (); | |
return TextFile.WriteFile (fileName, content, format.ByteOrderMark, true); | |
}); | |
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteProjectBuilder.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteProjectBuilder.cs | |
index e2ddb4c..5aadd1a 100644 | |
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteProjectBuilder.cs | |
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/RemoteProjectBuilder.cs | |
@@ -67,6 +67,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public IProjectBuilder LoadProject (string projectFile) | |
{ | |
try { | |
+ Console.WriteLine ("RemoteBuildEngine.LoadProject"); | |
return engine.LoadProject (projectFile); | |
} catch { | |
CheckDisconnected (); | |
@@ -77,6 +78,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public void UnloadProject (IProjectBuilder pb) | |
{ | |
try { | |
+ Console.WriteLine ("RemoteBuildEngine.UnloadProject"); | |
engine.UnloadProject (pb); | |
} catch (Exception ex) { | |
LoggingService.LogError ("Project unloading failed", ex); | |
@@ -88,6 +90,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public void CancelTask (int taskId) | |
{ | |
try { | |
+ Console.WriteLine ("RemoteBuildEngine.CancelTask"); | |
engine.CancelTask (taskId); | |
} catch { | |
CheckDisconnected (); | |
@@ -98,6 +101,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public void SetCulture (CultureInfo uiCulture) | |
{ | |
try { | |
+ Console.WriteLine ("RemoteBuildEngine.SetCulture"); | |
engine.SetCulture (uiCulture); | |
} catch { | |
CheckDisconnected (); | |
@@ -108,6 +112,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public void SetGlobalProperties (IDictionary<string, string> properties) | |
{ | |
try { | |
+ Console.WriteLine ("RemoteBuildEngine.SetGlobalProperties"); | |
engine.SetGlobalProperties (properties); | |
} catch { | |
CheckDisconnected (); | |
@@ -117,11 +122,13 @@ namespace MonoDevelop.Projects.MSBuild | |
void IBuildEngine.Ping () | |
{ | |
+ Console.WriteLine ("RemoteBuildEngine.Ping"); | |
engine.Ping (); | |
} | |
bool CheckAlive () | |
{ | |
+ Console.WriteLine ("RemoteBuildEngine.CheckAlive"); | |
if (!alive) | |
return false; | |
try { | |
@@ -135,6 +142,7 @@ namespace MonoDevelop.Projects.MSBuild | |
internal bool CheckDisconnected () | |
{ | |
+ Console.WriteLine ("RemoteBuildEngine.CheckDisconnected"); | |
if (!CheckAlive ()) { | |
if (Disconnected != null) | |
Disconnected (this, EventArgs.Empty); | |
@@ -145,6 +153,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public void Dispose () | |
{ | |
+ Console.WriteLine ("RemoteBuildEngine.Dispose"); | |
Interlocked.Decrement (ref count); | |
try { | |
alive = false; | |
@@ -154,8 +163,10 @@ namespace MonoDevelop.Projects.MSBuild | |
} catch { | |
} | |
} | |
- else | |
+ else { | |
+ LoggingService.LogInfo ("XS is disposing this engine"); | |
engine.Dispose (); | |
+ } | |
} catch { | |
// Ignore | |
} | |
@@ -163,11 +174,13 @@ namespace MonoDevelop.Projects.MSBuild | |
public bool Lock () | |
{ | |
+ Console.WriteLine ("RemoteBuildEngine.Lock"); | |
return Interlocked.Increment (ref busy) == 1; | |
} | |
public void Unlock () | |
{ | |
+ Console.WriteLine ("RemoteBuildEngine.Unlock"); | |
Interlocked.Decrement (ref busy); | |
} | |
@@ -199,6 +212,7 @@ namespace MonoDevelop.Projects.MSBuild | |
void CheckDisconnected () | |
{ | |
+ Console.WriteLine ("RemoteProjectBuilder.CheckDisconnected"); | |
if (engine != null && engine.CheckDisconnected ()) { | |
if (Disconnected != null) | |
Disconnected (this, EventArgs.Empty); | |
@@ -207,6 +221,7 @@ namespace MonoDevelop.Projects.MSBuild | |
IDisposable RegisterCancellation (CancellationToken cancellationToken, int taskId) | |
{ | |
+ Console.WriteLine ("RemoteProjectBuilder.RegisterCancellation"); | |
return cancellationToken.Register (() => { | |
try { | |
BeginOperation (); | |
@@ -232,6 +247,7 @@ namespace MonoDevelop.Projects.MSBuild | |
) | |
{ | |
// Get an id for the task, and get ready to cancel it if the cancellation token is signalled | |
+ Console.WriteLine ("RemoteProjectBuilder.Run some big configuration/task"); | |
var taskId = Interlocked.Increment (ref lastTaskId); | |
var cr = RegisterCancellation (cancellationToken, taskId); | |
@@ -265,6 +281,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public async Task<string[]> ResolveAssemblyReferences (ProjectConfigurationInfo[] configurations, CancellationToken cancellationToken) | |
{ | |
+ Console.WriteLine ("RemoteProjectBuilder.ResolveAssemblyReferences"); | |
string[] refs = null; | |
var id = configurations [0].Configuration + "|" + configurations [0].Platform; | |
@@ -325,6 +342,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public async Task Refresh () | |
{ | |
+ Console.WriteLine ("RemoteProjectBuilder.Refresh"); | |
using (await referenceCacheLock.EnterAsync ()) | |
referenceCache.Clear (); | |
@@ -343,6 +361,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public async Task RefreshWithContent (string projectContent) | |
{ | |
+ Console.WriteLine ("RemoteProjectBuilder.RefreshWithContent"); | |
using (await referenceCacheLock.EnterAsync ()) | |
referenceCache.Clear (); | |
@@ -361,6 +380,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public void Dispose () | |
{ | |
+ Console.WriteLine ("RemoteProjectBuilder.Dispose"); | |
if (!MSBuildProjectService.ShutDown && engine != null) { | |
try { | |
if (builder != null) | |
@@ -377,16 +397,19 @@ namespace MonoDevelop.Projects.MSBuild | |
~RemoteProjectBuilder () | |
{ | |
+ Console.WriteLine ("RemoteProjectBuilder.Finalizing - oops"); | |
Dispose (); | |
} | |
void BeginOperation () | |
{ | |
+ Console.WriteLine ("RemoteProjectBuilder.BeginOperation"); | |
engine.Lock (); | |
} | |
void EndOperation () | |
{ | |
+ Console.WriteLine ("RemoteProjectBuilder.EndOperation"); | |
if (engine != null) | |
engine.Unlock (); | |
} | |
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/SlnFileFormat.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/SlnFileFormat.cs | |
index b2a2a04..a7aaa59 100644 | |
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/SlnFileFormat.cs | |
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.MSBuild/SlnFileFormat.cs | |
@@ -97,7 +97,9 @@ namespace MonoDevelop.Projects.MSBuild | |
try { | |
monitor.BeginStep (); | |
item.SavingSolution = true; | |
+ Console.WriteLine ("item.SaveAsync (monitor).Wait ();"); | |
item.SaveAsync (monitor).Wait (); | |
+ Console.WriteLine ("Done item.SaveAsync (monitor).Wait ();"); | |
} finally { | |
item.SavingSolution = false; | |
} | |
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs | |
index 88f50ba..2ed69d7 100644 | |
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs | |
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs | |
@@ -523,11 +523,16 @@ namespace MonoDevelop.Projects | |
SetFastBuildCheckDirty (); | |
modifiedInMemory = false; | |
+ Console.WriteLine ("Project.OnSave - await WriteProjectAsync (monitor);"); | |
await WriteProjectAsync (monitor); | |
+ Console.WriteLine ("done Project.OnSave - await WriteProjectAsync (monitor);"); | |
// Doesn't save the file to disk if the content did not change | |
- if (await sourceProject.SaveAsync (FileName) && projectBuilder != null) | |
+ if (await sourceProject.SaveAsync (FileName) && projectBuilder != null) { | |
+ Console.WriteLine ("Project.OnSave - await projectBuilder.Refresh ();"); | |
await projectBuilder.Refresh (); | |
+ Console.WriteLine ("Done Project.OnSave - await projectBuilder.Refresh ();"); | |
+ } | |
} | |
protected override IEnumerable<WorkspaceObjectExtension> CreateDefaultExtensions () | |
@@ -1984,11 +1989,17 @@ namespace MonoDevelop.Projects | |
internal async Task WriteProjectAsync (ProgressMonitor monitor) | |
{ | |
+ Console.WriteLine ("Project.WriteProjectAsync - await writeProjectLock.EnterAsync ().ConfigureAwait (false)"); | |
using (await writeProjectLock.EnterAsync ().ConfigureAwait (false)) { | |
+ Console.WriteLine ("done Project.WriteProjectAsync - await writeProjectLock.EnterAsync ().ConfigureAwait (false)"); | |
await Task.Run (() => { | |
+ Console.WriteLine ("WriteProject (monitor);"); | |
WriteProject (monitor); | |
+ Console.WriteLine ("done WriteProject (monitor);"); | |
}).ConfigureAwait (false); | |
+ Console.WriteLine ("about to release the lock in Project.WriteProjectAsync"); | |
} | |
+ Console.WriteLine ("Released the lock in Project.WriteProjectAsync"); | |
} | |
void WriteProject (ProgressMonitor monitor) | |
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs | |
index 23f0870..ffc690f 100644 | |
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs | |
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs | |
@@ -289,6 +289,7 @@ namespace MonoDevelop.Projects | |
internal protected override Task OnSave (ProgressMonitor monitor) | |
{ | |
+ Console.WriteLine ("Solution.OnSave"); | |
return FileFormat.WriteFile (FileName, this, monitor); | |
} | |
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs | |
index 641aee9..f827a0f 100644 | |
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs | |
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs | |
@@ -420,10 +420,17 @@ namespace MonoDevelop.Projects | |
public Task SaveAsync (ProgressMonitor monitor) | |
{ | |
+ Console.WriteLine ("SolutionItem.SaveAsync"); | |
return BindTask (ct => Runtime.RunInMainThread (async () => { | |
+ Console.WriteLine ("SolutionItem.SaveAsync - await writelock"); | |
+ | |
using (await WriteLock ()) { | |
+ Console.WriteLine ("SolutionItem.SaveAsync - got writelock"); | |
+ | |
monitor = monitor.WithCancellationToken (ct); | |
+ Console.WriteLine ("SolutionItem.SaveAsync - ItemExtension.OnSave (monitor);"); | |
await ItemExtension.OnSave (monitor); | |
+ Console.WriteLine ("Done SolutionItem.SaveAsync - ItemExtension.OnSave (monitor);"); | |
if (ItemExtension.OnCheckHasSolutionData () && !SavingSolution && ParentSolution != null) { | |
// The project has data that has to be saved in the solution, but the solution is not being saved. Do it now. | |
@@ -441,7 +448,9 @@ namespace MonoDevelop.Projects | |
try { | |
fileStatusTracker.BeginSave (); | |
+ Console.WriteLine ("SolutionItem.OnSave - await OnSave (monitor);"); | |
await OnSave (monitor); | |
+ Console.WriteLine ("Done SolutionItem.OnSave - await OnSave (monitor);"); | |
OnSaved (thisItemArgs); | |
} finally { | |
fileStatusTracker.EndSave (); | |
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceItem.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceItem.cs | |
index c0d02ff..a68235f 100644 | |
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceItem.cs | |
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceItem.cs | |
@@ -237,15 +237,19 @@ namespace MonoDevelop.Projects | |
public Task SaveAsync (ProgressMonitor monitor) | |
{ | |
return Runtime.RunInMainThread (async delegate { | |
+ Console.WriteLine ("Awaiting writelock"); | |
using (await WriteLock ()) { | |
+ Console.WriteLine ("Got writelock"); | |
foreach (var f in GetItemFiles (false)) | |
FileService.RequestFileEdit (f); | |
try { | |
fileStatusTracker.BeginSave (); | |
+ Console.WriteLine ("awaiting ItemExtension.Save (monitor);"); | |
await ItemExtension.Save (monitor); | |
+ Console.WriteLine ("awaiting OnSaveUserProperties (); "); | |
await OnSaveUserProperties (); // Call the virtual to avoid the lock | |
OnSaved (new WorkspaceItemEventArgs (this)); | |
- | |
+ Console.WriteLine ("All done"); | |
// Update save times | |
} finally { | |
fileStatusTracker.EndSave (); | |
diff --git a/main/src/core/MonoDevelop.Projects.Formats.MSBuild/MonoDevelop.Projects.Formats.MSBuild/BuildEngine.Shared.cs b/main/src/core/MonoDevelop.Projects.Formats.MSBuild/MonoDevelop.Projects.Formats.MSBuild/BuildEngine.Shared.cs | |
index 1fe71fd..3b99ac2 100644 | |
--- a/main/src/core/MonoDevelop.Projects.Formats.MSBuild/MonoDevelop.Projects.Formats.MSBuild/BuildEngine.Shared.cs | |
+++ b/main/src/core/MonoDevelop.Projects.Formats.MSBuild/MonoDevelop.Projects.Formats.MSBuild/BuildEngine.Shared.cs | |
@@ -51,6 +51,7 @@ namespace MonoDevelop.Projects.MSBuild | |
public void Dispose () | |
{ | |
+ Console.WriteLine ("Remote MSBuild has been disposed"); | |
doneEvent.Set (); | |
} | |
diff --git a/main/tests/Makefile.am b/main/tests/Makefile.am | |
index 2ca47df..7bde092 100644 | |
--- a/main/tests/Makefile.am | |
+++ b/main/tests/Makefile.am | |
@@ -2,7 +2,7 @@ include $(top_srcdir)/xbuild.include | |
SUBDIRS=UnitTests MacPlatform.Tests UserInterfaceTests TestRunner Ide.Tests MonoDevelop.CSharpBinding.Tests | |
-MONO=mono$(SGEN_SUFFIX) | |
+MONO=mono$(SGEN_SUFFIX) --trace | |
RUN_TEST=$(MDTOOL_RUN) run-md-tests | |
TEST_DIR=$(top_builddir)/build/tests | |
EXTERNAL=$(top_builddir)/external | |
@@ -54,7 +54,7 @@ TEST_ASSEMBLIES += $(TEST_ASSEMBLIES_WINDOWS) | |
endif | |
test: | |
- @if test -n "$(assembly)"; then \ | |
+ if test -n "$(assembly)"; then \ | |
for asm in $(TEST_ASSEMBLIES); do \ | |
if test `basename $$asm` = $(assembly); then \ | |
($(RUN_TEST) -xml=TestResult_`basename $$asm`.xml -labels $$asm) || exit $?; \ | |
diff --git a/main/tests/UnitTests/MonoDevelop.Projects/MSBuildTests.cs b/main/tests/UnitTests/MonoDevelop.Projects/MSBuildTests.cs | |
index 4a90089..ed0227a 100644 | |
--- a/main/tests/UnitTests/MonoDevelop.Projects/MSBuildTests.cs | |
+++ b/main/tests/UnitTests/MonoDevelop.Projects/MSBuildTests.cs | |
@@ -38,17 +38,17 @@ using MonoDevelop.Projects.MSBuild; | |
using System.Threading.Tasks; | |
using MonoDevelop.Core.Serialization; | |
using MonoDevelop.Projects.Extensions; | |
- | |
-namespace MonoDevelop.Projects | |
+using MonoDevelop.Projects; | |
+namespace ____MonoDevelop.Projects | |
{ | |
[TestFixture] | |
- public class MSBuildTests: TestBase | |
+ public class ____MSBuildTests: TestBase | |
{ | |
[Test()] | |
public async Task LoadSaveBuildConsoleProject() | |
{ | |
string solFile = Util.GetSampleProject ("console-project", "ConsoleProject.sln"); | |
- | |
+ | |
Solution item = (Solution) await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solFile); | |
Assert.IsTrue (item is Solution); | |
@@ -489,12 +489,26 @@ namespace MonoDevelop.Projects | |
{ | |
string solFile = Util.GetSampleProject ("ConsoleApp-VS" + vsVersion, "ConsoleApplication.sln"); | |
var monitor = new ProgressMonitor (); | |
+ | |
+ //while (true) { | |
+ // var sol2 = (Solution) await Services.ProjectService.ReadWorkspaceItem (monitor, solFile); | |
+ // var r2 = await sol2.Build (monitor, "Debug"); | |
+ // Console.WriteLine (r2); | |
+ // await sol2.SaveAsync (monitor); | |
+ // monitor.Dispose (); | |
+ // monitor = new ProgressMonitor (); | |
+ // Console.WriteLine ("Monitor Disposed"); | |
+ //} | |
+ Console.WriteLine ("First"); | |
var sol = (Solution) await Services.ProjectService.ReadWorkspaceItem (monitor, solFile); | |
+ Console.WriteLine ("Second"); | |
Assert.IsTrue (monitor.Errors.Length == 0); | |
Assert.IsTrue (monitor.Warnings.Length == 0); | |
var p = (DotNetProject) sol.GetAllProjects ().First (); | |
Assert.AreEqual (toolsVersion, p.ToolsVersion); | |
+ Console.WriteLine ("Third"); | |
var r = await sol.Build (monitor, "Debug"); | |
+ Console.WriteLine ("Fourth"); | |
Assert.IsTrue (monitor.Errors.Length == 0); | |
Assert.IsTrue (monitor.Warnings.Length == 0); | |
Assert.IsFalse (r.Failed); | |
@@ -512,7 +526,9 @@ namespace MonoDevelop.Projects | |
string projectFile = ((Project)sol.Items [0]).FileName; | |
string projectXml = Util.ReadAllWithWindowsEndings (projectFile); | |
+ Console.WriteLine ("Fifth"); | |
await sol.SaveAsync (monitor); | |
+ Console.WriteLine ("Sixth"); | |
Assert.IsTrue (monitor.Errors.Length == 0); | |
Assert.IsTrue (monitor.Warnings.Length == 0); | |
@@ -520,9 +536,13 @@ namespace MonoDevelop.Projects | |
} | |
[Test] | |
- public async Task LoadBuildVS2010ConsoleProject () | |
+ public async Task ____LoadBuildVS2010ConsoleProject () | |
{ | |
- await LoadBuildVSConsoleProject ("2010", "4.0"); | |
+ while (true) { | |
+ Console.WriteLine ("Starting2"); | |
+ await LoadBuildVSConsoleProject ("2010", "4.0"); | |
+ Console.WriteLine ("Finished2"); | |
+ } | |
} | |
[Test] | |
diff --git a/main/tests/UnitTests/UnitTests.csproj b/main/tests/UnitTests/UnitTests.csproj | |
index a869b47..c221e71 100644 | |
--- a/main/tests/UnitTests/UnitTests.csproj | |
+++ b/main/tests/UnitTests/UnitTests.csproj | |
@@ -172,12 +172,10 @@ | |
<ProjectReference Include="..\..\external\nrefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj"> | |
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project> | |
<Name>ICSharpCode.NRefactory</Name> | |
- <Private>False</Private> | |
</ProjectReference> | |
<ProjectReference Include="..\..\external\nrefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj"> | |
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project> | |
<Name>ICSharpCode.NRefactory.CSharp</Name> | |
- <Private>False</Private> | |
</ProjectReference> | |
<ProjectReference Include="..\..\external\mono-addins\Mono.Addins\Mono.Addins.csproj"> | |
<Project>{91DD5A2D-9FE3-4C3C-9253-876141874DAD}</Project> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment