本文整理汇总了C#中IBuildContext类的典型用法代码示例。如果您正苦于以下问题:C# IBuildContext类的具体用法?C# IBuildContext怎么用?C# IBuildContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IBuildContext类属于命名空间,在下文中一共展示了IBuildContext类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddToContext
/// <summary>
/// Adds the builders (<see cref="IBuilder"/>) to the given build context which process
/// the given set of projects (<see cref="Project"/>)
/// </summary>
/// <param name="context">Current build context</param>
/// <param name="projects">Projects to be built</param>
public IBuilder AddToContext(IBuildContext context, IEnumerable<Project> projects)
{
Contract.Requires(context != null);
Contract.Requires(projects != null);
return null; // dummy value
}
示例2: Build
public override Result Build (IBuildContext ctxt)
{
// A more orthodox subclass might call Rule.CreateResultObject
// and do some value.CopyValueTo (result), but this is simpler.
return (Result) value.Clone ();
}
示例3: Run
public override void Run(IBuildContext context)
{
if (context.Project.HasErrors)
{
context.Trace.TraceInformation(Msg.D1004, Texts.Package_contains_errors_and_will_not_be_deployed);
context.IsAborted = true;
return;
}
context.Trace.TraceInformation(Msg.D1005, Texts.Copying_package_to_website___);
foreach (var pair in context.Configuration.GetSubKeys("copy-package"))
{
var key = "copy-package:" + pair.Key;
var destinationDirectory = context.Configuration.GetString(key + ":copy-to-directory");
if (string.IsNullOrEmpty(destinationDirectory))
{
context.Trace.TraceError(Msg.D1006, Texts.Destination_directory_not_found, key + ":copy-to-directory");
continue;
}
destinationDirectory = PathHelper.NormalizeFilePath(destinationDirectory).TrimStart('\\');
destinationDirectory = PathHelper.Combine(context.Configuration.Get(Constants.Configuration.DataFolderDirectory), destinationDirectory);
context.FileSystem.CreateDirectory(destinationDirectory);
foreach (var fileName in context.OutputFiles)
{
var destinationFileName = PathHelper.Combine(destinationDirectory, Path.GetFileName(fileName));
context.FileSystem.Copy(fileName, destinationFileName);
}
}
}
示例4: Run
public override void Run(IBuildContext context)
{
context.IsAborted = true;
context.Trace.TraceInformation(Msg.M1012, Texts.Writing_website_exports___);
var url = MakeWebApiUrl(context, "WriteWebsiteExports");
var targetFileName = Path.GetTempFileName();
if (!DownloadFile(context, url, targetFileName))
{
return;
}
using (var zip = ZipFile.OpenRead(targetFileName))
{
foreach (var entry in zip.Entries)
{
context.Trace.TraceInformation(Msg.M1013, entry.FullName);
var fileName = Path.Combine(context.ProjectDirectory, entry.FullName);
context.FileSystem.CreateDirectory(Path.GetDirectoryName(fileName) ?? string.Empty);
entry.ExtractToFile(fileName, true);
}
}
context.FileSystem.DeleteFile(targetFileName);
}
示例5: OnPerpare
/// <summary>
/// The on perpare.
/// </summary>
/// <param name="context">
/// The context.
/// </param>
public override void OnPerpare(IBuildContext context)
{
if (context.Target != null) return;
context.ErrorTracer.Phase = "Reciving Construtor Informations for " + context.Metadata;
IImportInterceptor interceptor;
context.Policys.Add(
new ConstructorPolicy
{
Constructor =
context.UseInternalInstantiation()
? Helper.WriteDefaultCreation(context)
: context.Metadata.Export.ExternalInfo.Create,
Generator =
_service.Generate(context.Metadata, context.Metadata.Export.ImportMetadata.ToArray(),
out interceptor)
});
if (interceptor == null) return;
var pol = context.Policys.Get<ExternalImportInterceptorPolicy>();
if (pol != null) pol.Interceptors.Add(interceptor);
else
{
pol = new ExternalImportInterceptorPolicy();
pol.Interceptors.Add(interceptor);
context.Policys.Add(pol);
}
}
示例6: Run
public override void Run(IBuildContext context)
{
Context = context;
Context.IsAborted = true;
var include = context.Configuration.GetString(Constants.Configuration.WatchProjectInclude, "**");
var exclude = context.Configuration.GetString(Constants.Configuration.WatchProjectExclude, "**");
_pathMatcher = new PathMatcher(include, exclude);
_publishDatabase = context.Configuration.GetBool(Constants.Configuration.WatchProjectPublishDatabase, true);
_fileWatcher = new FileSystemWatcher(context.ProjectDirectory)
{
IncludeSubdirectories = true,
NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName
};
_fileWatcher.Changed += FileChanged;
_fileWatcher.Deleted += FileChanged;
_fileWatcher.Renamed += FileChanged;
_fileWatcher.Created += FileChanged;
_fileWatcher.Created += FileChanged;
_fileWatcher.EnableRaisingEvents = true;
Console.WriteLine(Texts.Type__q__to_quit___);
string input;
do
{
input = Console.ReadLine();
}
while (!string.Equals(input, "q", StringComparison.OrdinalIgnoreCase));
}
示例7: GetPath
public string GetPath (IBuildContext ctxt) {
if (dir == null)
return null;
string p = ctxt.PathTo (dir);
return Path.Combine (p, name);
}
示例8: Run
public override void Run(IBuildContext context)
{
context.Trace.TraceInformation(Msg.D1000, Texts.Copying_dependencies___);
var sourceDirectory = context.Configuration.Get(Constants.Configuration.CopyDependenciesSourceDirectory);
sourceDirectory = Path.Combine(context.ProjectDirectory, sourceDirectory);
if (!context.FileSystem.DirectoryExists(sourceDirectory))
{
context.Trace.TraceInformation(Msg.D1003, Texts.Dependencies_directory_not_found__Skipping, sourceDirectory);
return;
}
foreach (var pair in context.Configuration.GetSubKeys("copy-package"))
{
var key = "copy-package:" + pair.Key;
var destinationDirectory = context.Configuration.GetString(key + ":copy-to-directory");
if (string.IsNullOrEmpty(destinationDirectory))
{
context.Trace.TraceError(Msg.D1001, Texts.Destination_directory_not_found, key + ":copy-to-directory");
continue;
}
destinationDirectory = PathHelper.NormalizeFilePath(destinationDirectory).TrimStart('\\');
destinationDirectory = PathHelper.Combine(context.Configuration.Get(Constants.Configuration.DataFolderDirectory), destinationDirectory);
context.FileSystem.CreateDirectory(destinationDirectory);
CopyNuGetPackages(context, sourceDirectory, destinationDirectory);
}
}
示例9: EnumerableImpl
public EnumerableImpl(object key, Type type, Type resultType, IBuildContext firstBuildCtx, ICRegILGen firstReg)
{
_key = key;
_type = type;
_resultType = resultType;
_list.Add(new KeyValuePair<IBuildContext, ICRegILGen>(firstBuildCtx, firstReg));
}
示例10: Run
public override void Run(IBuildContext context)
{
if (context.Project.HasErrors)
{
return;
}
context.Trace.TraceInformation(Msg.D1015, Texts.Writing_package_exports___);
var fileName = PathHelper.Combine(context.ProjectDirectory, context.Configuration.GetString(Constants.Configuration.WriteExportsFileName));
var fieldToWrite = context.Configuration.GetString(Constants.Configuration.WriteExportsFieldsToWrite).Split(Constants.Comma, StringSplitOptions.RemoveEmptyEntries).Select(f => f.Trim()).ToList();
using (var writer = new StreamWriter(fileName))
{
using (var output = new XmlTextWriter(writer))
{
output.Formatting = Formatting.Indented;
output.WriteStartElement("Exports");
foreach (var template in context.Project.ProjectItems.OfType<Template>().Where(template => !template.IsImport))
{
template.WriteAsExportXml(output);
}
foreach (var item in context.Project.ProjectItems.OfType<Item>().Where(item => !item.IsImport))
{
item.WriteAsExportXml(output, fieldToWrite);
}
output.WriteEndElement();
}
}
}
示例11: Run
public override void Run(IBuildContext context)
{
context.Trace.TraceInformation(Msg.S1000, Texts.SynchronizingWebsite);
var url = MakeWebApiUrl(context, "SynchronizeWebsite");
var targetFileName = Path.GetTempFileName();
if (!DownloadFile(context, url, targetFileName))
{
return;
}
context.Trace.TraceInformation(Msg.S1001, Texts.Updating_resources___);
using (var zip = ZipFile.OpenRead(targetFileName))
{
foreach (var entry in zip.Entries)
{
context.Trace.TraceInformation(Msg.S1002, entry.FullName);
entry.ExtractToFile(Path.Combine(context.ProjectDirectory, entry.FullName), true);
}
}
context.FileSystem.DeleteFile(targetFileName);
}
示例12: Run
public override void Run(IBuildContext context)
{
if (context.Project.HasErrors)
{
context.Trace.TraceInformation(Msg.D1017, Texts.Package_contains_errors_and_will_not_be_deployed);
context.IsAborted = true;
return;
}
context.Trace.TraceInformation(Msg.D1023, Texts.Creating_npm_module___);
var npmFileName = Path.Combine(context.ProjectDirectory, "package.json");
if (!context.FileSystem.FileExists(npmFileName))
{
context.Trace.TraceInformation(Msg.D1024, Texts._package_json__file_not_found__Skipping_);
return;
}
var process = new Process();
process.StartInfo.FileName = "npm";
process.StartInfo.Arguments = "pack";
process.StartInfo.WorkingDirectory = context.ProjectDirectory;
process.StartInfo.UseShellExecute = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
process.WaitForExit();
var outputFileName = GetOutputFileName(context, npmFileName);
if (!string.IsNullOrEmpty(outputFileName) && context.FileSystem.FileExists(outputFileName))
{
context.OutputFiles.Add(outputFileName);
}
}
示例13: Run
public override void Run(IBuildContext context)
{
if (context.Project.HasErrors)
{
context.Trace.TraceInformation(Msg.D1012, Texts.Package_contains_errors_and_will_not_be_deployed);
context.IsAborted = true;
return;
}
context.Trace.TraceInformation(Msg.D1016, Texts.Publishing___);
if (string.Equals(context.Project.Options.DatabaseName, "core", StringComparison.OrdinalIgnoreCase))
{
context.Trace.TraceInformation(Msg.D1013, Texts.Database_is__core___Skipping_);
return;
}
context.Trace.TraceInformation(Msg.D1014, Texts.Database, context.Project.Options.DatabaseName);
var queryStringParameters = new Dictionary<string, string>
{
["m"] = "i",
["db"] = context.Project.Options.DatabaseName
};
var url = MakeUrl(context, context.Configuration.GetString(Constants.Configuration.PublishUrl), queryStringParameters);
Request(context, url);
}
示例14: Run
public ISet<TargetRelativePath> Run(IBuildContext context)
{
var targetDir = targetRoot.CreateDirectory(project.RelativeTargetPath);
if (targetDir == null)
targetDir = targetRoot.CreateDirectory(project.RelativeTargetPath);
var sourceSet = project.GetSourceSet("scr");
var result = new HashSet<TargetRelativePath>();
foreach (var file in sourceSet.Files)
{
log.DebugFormat("Processing {0}", file);
using (var reader = suiteRoot.ReadTextFile(file))
{
var contents = reader.ReadToEnd();
var msg = String.Format("Hello {0}!!!", contents);
var fileName = Path.GetFileName(file);
using (var writer = targetDir.CreateTextFile(fileName + ".txt"))
writer.WriteLine(msg);
result.Add(new TargetRelativePath(project.RelativeTargetPath, fileName + ".txt"));
}
}
return result;
}
示例15: Generate
public override void Generate(IBuildContext context, IProject project)
{
var host = GetHost(context, project);
foreach (var fileName in context.FileSystem.GetFiles(context.ProjectDirectory, "*.project.tt", SearchOption.AllDirectories))
{
if (Ignore(fileName))
{
continue;
}
context.Trace.TraceInformation(Msg.G1008, Texts.Generating_code, PathHelper.UnmapPath(context.ProjectDirectory, fileName));
try
{
if (!host.ProcessTemplate(fileName, fileName.Left(fileName.Length - 11)))
{
TraceErrors(context, host, fileName);
}
}
catch (Exception ex)
{
context.Trace.TraceError(Msg.G1007, ex.Message, fileName, TextSpan.Empty);
}
}
}