本文整理汇总了C#中MonoDevelop.Core.Assemblies.TargetRuntime.GetToolsEnvironmentVariables方法的典型用法代码示例。如果您正苦于以下问题:C# TargetRuntime.GetToolsEnvironmentVariables方法的具体用法?C# TargetRuntime.GetToolsEnvironmentVariables怎么用?C# TargetRuntime.GetToolsEnvironmentVariables使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MonoDevelop.Core.Assemblies.TargetRuntime
的用法示例。
在下文中一共展示了TargetRuntime.GetToolsEnvironmentVariables方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetProjectBuilder
public static RemoteProjectBuilder GetProjectBuilder (TargetRuntime runtime, TargetFramework fx, string file)
{
lock (builders) {
string binDir = runtime.GetMSBuildBinPath (fx);
RemoteBuildEngine builder;
if (builders.TryGetValue (runtime, out builder)) {
builder.ReferenceCount++;
return new RemoteProjectBuilder (file, binDir, builder);
}
if (runtime.IsRunning) {
if (currentBuildEngine == null)
currentBuildEngine = new RemoteBuildEngine (null, new BuildEngine ());
return new RemoteProjectBuilder (file, binDir, currentBuildEngine);
}
else {
MonoDevelop.Core.Execution.RemotingService.RegisterRemotingChannel ();
string exe = typeof(ProjectBuilder).Assembly.Location;
ProcessStartInfo pinfo = new ProcessStartInfo (exe);
foreach (KeyValuePair<string,string> evar in runtime.GetToolsEnvironmentVariables (fx))
pinfo.EnvironmentVariables [evar.Key] = evar.Value;
pinfo.UseShellExecute = false;
pinfo.RedirectStandardError = true;
pinfo.RedirectStandardInput = true;
Process p = null;
try {
p = runtime.ExecuteAssembly (pinfo, fx);
p.StandardInput.WriteLine (Process.GetCurrentProcess ().Id.ToString ());
string sref = p.StandardError.ReadLine ();
byte[] data = Convert.FromBase64String (sref);
MemoryStream ms = new MemoryStream (data);
BinaryFormatter bf = new BinaryFormatter ();
builder = new RemoteBuildEngine (p, (IBuildEngine) bf.Deserialize (ms));
} catch {
if (p != null) {
try {
p.Kill ();
} catch { }
}
throw;
}
}
builders [runtime] = builder;
builder.ReferenceCount = 1;
return new RemoteProjectBuilder (file, binDir, builder);
}
}