Getting PrivateBinPath from web.config
This commit is contained in:
parent
ae97654696
commit
23b1f7af8d
1 changed files with 24 additions and 1 deletions
|
@ -29,6 +29,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Xml;
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using WebsitePanel.Providers.SharePoint;
|
using WebsitePanel.Providers.SharePoint;
|
||||||
using WebsitePanel.Providers.Utils;
|
using WebsitePanel.Providers.Utils;
|
||||||
|
@ -307,7 +309,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Type type = typeof(HostedSharePointServer2013Impl);
|
Type type = typeof(HostedSharePointServer2013Impl);
|
||||||
var info = new AppDomainSetup { ApplicationBase = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory), PrivateBinPath = string.Join(Path.PathSeparator.ToString(), new string[]{"bin", "bin/debug", "bin/SharePoint2013"}) };
|
var info = new AppDomainSetup { ApplicationBase = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory), PrivateBinPath = GetPrivateBinPath() };
|
||||||
domain = AppDomain.CreateDomain("WSS30", null, info);
|
domain = AppDomain.CreateDomain("WSS30", null, info);
|
||||||
var impl = (HostedSharePointServer2013Impl)domain.CreateInstanceAndUnwrap(type.Assembly.FullName, type.FullName);
|
var impl = (HostedSharePointServer2013Impl)domain.CreateInstanceAndUnwrap(type.Assembly.FullName, type.FullName);
|
||||||
|
|
||||||
|
@ -324,6 +326,27 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
throw new ArgumentNullException("action");
|
throw new ArgumentNullException("action");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary> Getting PrivatePath from web.config. </summary>
|
||||||
|
/// <returns> The PrivateBinPath.</returns>
|
||||||
|
private static string GetPrivateBinPath()
|
||||||
|
{
|
||||||
|
var lines = new List<string>{ "bin", "bin/debug" };
|
||||||
|
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "web.config");
|
||||||
|
|
||||||
|
if (File.Exists(path))
|
||||||
|
{
|
||||||
|
using (var reader = new StreamReader(path))
|
||||||
|
{
|
||||||
|
string content = reader.ReadToEnd();
|
||||||
|
var pattern = new Regex(@"(?<=probing .*?privatePath\s*=\s*"")[^""]+(?="".*?>)");
|
||||||
|
Match match = pattern.Match(content);
|
||||||
|
lines.AddRange(match.Value.Split(';'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return string.Join(Path.PathSeparator.ToString(), lines.ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue