本文整理汇总了C#中IProgressMonitor.ReportWarning方法的典型用法代码示例。如果您正苦于以下问题:C# IProgressMonitor.ReportWarning方法的具体用法?C# IProgressMonitor.ReportWarning怎么用?C# IProgressMonitor.ReportWarning使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IProgressMonitor
的用法示例。
在下文中一共展示了IProgressMonitor.ReportWarning方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReadFile
public object ReadFile(string file, IProgressMonitor monitor)
{
XmlTextReader reader = new XmlTextReader (new StreamReader (file));
reader.MoveToContent ();
string version = reader.GetAttribute ("version");
if (version == null) version = reader.GetAttribute ("fileversion");
DataSerializer serializer = new DataSerializer (Runtime.ProjectService.DataContext, file);
ICombineReader combineReader = null;
if (version == "1.0" || version == "1") {
combineReader = new CombineReaderV1 (serializer, monitor);
monitor.ReportWarning (string.Format (GettextCatalog.GetString ("The file '{0}' is using an old combine file format. It will be automatically converted to the current format."), file));
}
else if (version == "2.0")
combineReader = new CombineReaderV2 (serializer, monitor);
try {
if (combineReader != null)
return combineReader.ReadCombine (reader);
else
throw new UnknownProjectVersionException (file, version);
} finally {
reader.Close ();
}
}
示例2: InstallEntry
void InstallEntry (IProgressMonitor monitor, DeployContext ctx, SolutionItem entry, ConfigurationSelector configuration)
{
foreach (DeployFile df in DeployService.GetDeployFiles (ctx, new SolutionItem[] { entry }, configuration)) {
string targetPath = df.ResolvedTargetFile;
if (targetPath == null) {
monitor.ReportWarning ("Could not copy file '" + df.RelativeTargetPath + "': Unknown target directory.");
continue;
}
CopyFile (monitor, df.SourcePath, df.ResolvedTargetFile, df.FileAttributes);
}
SolutionFolder c = entry as SolutionFolder;
if (c != null) {
monitor.BeginTask ("Installing solution '" + c.Name + "'", c.Items.Count);
foreach (SolutionItem ce in c.Items) {
InstallEntry (monitor, ctx, ce, configuration);
monitor.Step (1);
}
monitor.EndTask ();
}
}
示例3: CheckForPackageUpdates
void CheckForPackageUpdates (
IProgressMonitor progressMonitor,
ProgressMonitorStatusMessage progressMessage,
PackageUpdatesEventMonitor eventMonitor)
{
updatedPackagesInSolution.CheckForUpdates ();
if (updatedPackagesInSolution.AnyUpdates ()) {
progressMonitor.ReportSuccess (GettextCatalog.GetString ("Package updates are available."));
} else if (eventMonitor.WarningReported) {
progressMonitor.ReportWarning (progressMessage.Warning);
} else {
progressMonitor.ReportSuccess (progressMessage.Success);
}
}
示例4: CopyFiles
bool CopyFiles (IProgressMonitor monitor, IWorkspaceFileObject obj, IEnumerable<FilePath> files, FilePath targetBasePath, bool ignoreExternalFiles)
{
FilePath baseDir = obj.BaseDirectory.FullPath;
foreach (FilePath file in files) {
if (!File.Exists (file)) {
monitor.ReportWarning (GettextCatalog.GetString ("File '{0}' not found.", file));
continue;
}
FilePath fname = file.FullPath;
// Can't export files from outside the root solution directory
if (!fname.IsChildPathOf (baseDir)) {
if (ignoreExternalFiles)
continue;
if (obj is Solution)
monitor.ReportError ("The solution '" + obj.Name + "' is referencing the file '" + Path.GetFileName (file) + "' which is located outside the root solution directory.", null);
else
monitor.ReportError ("The project '" + obj.Name + "' is referencing the file '" + Path.GetFileName (file) + "' which is located outside the project directory.", null);
return false;
}
FilePath rpath = fname.ToRelative (baseDir);
rpath = rpath.ToAbsolute (targetBasePath);
if (!Directory.Exists (rpath.ParentDirectory))
Directory.CreateDirectory (rpath.ParentDirectory);
File.Copy (file, rpath, true);
}
return true;
}
示例5: ResolveObjcToCli
/// <summary>
/// Resolves the type by mapping the known Objective-C type information to .NET types.
/// </summary>
/// <returns>
/// The number of unresolved types still remaining.
/// </returns>
/// <param name='type'>
/// The NSObjectTypeInfo that contains the known Objective-C type information.
/// Typically this will be the result of NSObjectInfoService.ParseHeader().
/// </param>
/// <param name='provider'>
/// A CodeDom provider which is used to make sure type names don't conflict with language keywords.
/// </param>
/// <param name='defaultNamespace'>
/// The default namespace used when forcing type resolution.
/// </param>
public void ResolveObjcToCli (IProgressMonitor monitor, NSObjectTypeInfo type, CodeDomProvider provider, string defaultNamespace)
{
NSObjectTypeInfo resolved;
// Resolve our base type
if (type.BaseCliType == null) {
if (TryResolveObjcToCli (type.BaseObjCType, out resolved)) {
type.BaseCliType = resolved.CliName;
} else {
type.BaseCliType = defaultNamespace + "." + provider.CreateValidIdentifier (type.BaseObjCType);
monitor.ReportWarning (string.Format ("Failed to resolve Objective-C type {0} to CLI type on type {1}",
type.BaseObjCType, type.ObjCName));
}
}
// Resolve [Outlet] types
foreach (var outlet in type.Outlets) {
if (outlet.CliType != null)
continue;
if (TryResolveObjcToCli (outlet.ObjCType, out resolved)) {
outlet.CliType = resolved.CliName;
} else {
outlet.CliType = defaultNamespace + "." + provider.CreateValidIdentifier (outlet.ObjCType);
monitor.ReportWarning (string.Format ("Failed to resolve Objective-C type {0} to CLI type on outlet {1} on type {2}",
outlet.ObjCType, outlet.ObjCName, type.ObjCName));
}
}
// Resolve [Action] param types
foreach (var action in type.Actions) {
foreach (var param in action.Parameters) {
if (param.CliType != null)
continue;
if (TryResolveObjcToCli (param.ObjCType, out resolved)) {
param.CliType = resolved.CliName;
} else {
param.CliType = defaultNamespace + "." + provider.CreateValidIdentifier (param.ObjCType);
monitor.ReportWarning (string.Format ("Failed to resolve Objective-C type {0} to CLI type on action parameter {1} for action {2} on type {3}",
param.ObjCType, param.Name, action.ObjCName, type.ObjCName));
}
}
}
}
示例6: CopyFilesToMD
/// <summary>
/// Copies resource files from the Xcode project (back) to the MonoDevelop project directory.
/// </summary>
/// <param name='monitor'>
/// A progress monitor.
/// </param>
/// <param name='context'>
/// The sync context.
/// </param>
void CopyFilesToMD (IProgressMonitor monitor, XcodeSyncBackContext context)
{
if (context.FileSyncJobs.Count == 0)
return;
monitor.BeginStepTask ("Copying files from Xcode back to MonoDevelop...", context.FileSyncJobs.Count, 1);
foreach (var file in context.FileSyncJobs) {
monitor.Log.WriteLine ("Copying {0} file from Xcode: {1}", file.IsFreshlyAdded ? "new" : "changed", file.SyncedRelative);
if (!Directory.Exists (file.Original.ParentDirectory))
Directory.CreateDirectory (file.Original.ParentDirectory);
var tempFile = file.Original.ParentDirectory.Combine (".#" + file.Original.ParentDirectory.FileName);
FilePath path = context.ProjectDir.Combine (file.SyncedRelative);
if (File.Exists (path)) {
File.Copy (path, tempFile);
FileService.SystemRename (tempFile, file.Original);
DateTime mtime = File.GetLastWriteTime (file.Original);
context.SetSyncTime (file.SyncedRelative, mtime);
} else {
monitor.ReportWarning (string.Format ("'{0}' does not exist.", file.SyncedRelative));
}
monitor.Step (1);
}
monitor.EndTask ();
}
示例7: UpdateCatalog
public virtual void UpdateCatalog (TranslationProject project, Catalog catalog, IProgressMonitor monitor, string fileName)
{
string text = File.ReadAllText (fileName);
string relativeFileName = MonoDevelop.Core.FileService.AbsoluteToRelativePath (project.BaseDirectory, fileName);
string fileNamePrefix = relativeFileName + ":";
if (String.IsNullOrEmpty (text))
return;
// Get a list of all excluded regions
List<Match> excludeMatches = new List<Match> ();
foreach (Regex regex in excluded) {
foreach (Match m in regex.Matches (text))
excludeMatches.Add (m);
}
// Sort the list by match index
excludeMatches.Sort (delegate (Match a, Match b) {
return a.Index.CompareTo (b.Index);
});
// Remove from the list all regions which start in an excluded region
int pos=0;
for (int n=0; n<excludeMatches.Count; n++) {
Match m = excludeMatches [n];
if (m.Index < pos) {
excludeMatches.RemoveAt (n);
n--;
} else {
pos = m.Index + m.Length;
}
}
foreach (RegexInfo ri in regexes) {
int lineNumber = 0;
int oldIndex = 0;
foreach (Match match in ri.Regex.Matches (text)) {
// Ignore matches inside excluded regions
bool ignore = false;
foreach (Match em in excludeMatches) {
if (match.Index >= em.Index && match.Index < em.Index + em.Length) {
ignore = true;
LoggingService.LogDebug ("Excluded Gettext string '{0}' in file '{1}'", match.Groups[ri.ValueGroupIndex].Value, fileName);
break;
}
}
if (ignore)
continue;
string mt = match.Groups[ri.ValueGroupIndex].Value;
if (mt.Length == 0)
continue;
foreach (TransformInfo ti in transforms)
mt = ti.Regex.Replace (mt, ti.ReplaceText);
try {
mt = StringEscaping.UnEscape (ri.EscapeMode, mt);
} catch (FormatException fex) {
monitor.ReportWarning ("Error unescaping string '" + mt + "': " + fex.Message);
continue;
}
if (mt.Trim().Length == 0)
continue;
//get the plural string if it's a plural form and apply transforms
string pt = ri.PluralGroupIndex != -1 ? match.Groups[ri.PluralGroupIndex].Value : null;
if (pt != null)
foreach (TransformInfo ti in transforms)
pt = ti.Regex.Replace (pt, ti.ReplaceText);
//add to the catalog
CatalogEntry entry = catalog.AddItem (mt, pt);
lineNumber += GetLineCount (text, oldIndex, match.Index);
oldIndex = match.Index;
entry.AddReference (fileNamePrefix + lineNumber);
}
}
}
示例8: Compile
public static BuildResult Compile (ProjectItemCollection projectItems, DotNetProjectConfiguration configuration, ConfigurationSelector configSelector, IProgressMonitor monitor)
{
CSharpCompilerParameters compilerParameters = (CSharpCompilerParameters)configuration.CompilationParameters ?? new CSharpCompilerParameters ();
CSharpProjectParameters projectParameters = (CSharpProjectParameters)configuration.ProjectParameters ?? new CSharpProjectParameters ();
string outputName = configuration.CompiledOutputName;
string responseFileName = Path.GetTempFileName();
if (File.Exists (outputName)) {
bool isWriteable = false;
int count = 0;
do {
try {
using (var stream = File.OpenWrite (outputName)) {
isWriteable = true;
}
} catch (Exception) {
Thread.Sleep (20);
}
} while (count++ < 5 && !isWriteable);
if (!isWriteable) {
MessageService.ShowError (string.Format (GettextCatalog.GetString ("Can't lock file: {0}."), outputName));
return null;
}
}
TargetRuntime runtime = MonoDevelop.Core.Runtime.SystemAssemblyService.DefaultRuntime;
DotNetProject project = configuration.ParentItem as DotNetProject;
if (project != null)
runtime = project.TargetRuntime;
StringBuilder sb = new StringBuilder ();
List<string> gacRoots = new List<string> ();
sb.AppendFormat ("\"/out:{0}\"", outputName);
sb.AppendLine ();
HashSet<string> alreadyAddedReference = new HashSet<string> ();
foreach (ProjectReference lib in projectItems.GetAll <ProjectReference> ()) {
if (lib.ReferenceType == ReferenceType.Project && !(lib.OwnerProject.ParentSolution.FindProjectByName (lib.Reference) is DotNetProject))
continue;
foreach (string fileName in lib.GetReferencedFileNames (configSelector)) {
switch (lib.ReferenceType) {
case ReferenceType.Gac:
SystemPackage pkg = lib.Package;
if (pkg == null) {
string msg = string.Format (GettextCatalog.GetString ("{0} could not be found or is invalid."), lib.Reference);
monitor.ReportWarning (msg);
continue;
}
if (alreadyAddedReference.Add (fileName))
AppendQuoted (sb, "/r:", fileName);
if (pkg.GacRoot != null && !gacRoots.Contains (pkg.GacRoot))
gacRoots.Add (pkg.GacRoot);
if (!string.IsNullOrEmpty (pkg.Requires)) {
foreach (string requiredPackage in pkg.Requires.Split(' ')) {
SystemPackage rpkg = runtime.AssemblyContext.GetPackage (requiredPackage);
if (rpkg == null)
continue;
foreach (SystemAssembly assembly in rpkg.Assemblies) {
if (alreadyAddedReference.Add (assembly.Location))
AppendQuoted (sb, "/r:", assembly.Location);
}
}
}
break;
default:
if (alreadyAddedReference.Add (fileName))
AppendQuoted (sb, "/r:", fileName);
break;
}
}
}
sb.AppendLine ("/nologo");
sb.Append ("/warn:");sb.Append (compilerParameters.WarningLevel.ToString ());
sb.AppendLine ();
if (configuration.SignAssembly) {
if (File.Exists (configuration.AssemblyKeyFile))
AppendQuoted (sb, "/keyfile:", configuration.AssemblyKeyFile);
}
if (configuration.DebugMode) {
sb.AppendLine ("/debug:+");
sb.AppendLine ("/debug:full");
}
switch (compilerParameters.LangVersion) {
case LangVersion.Default:
break;
case LangVersion.ISO_1:
sb.AppendLine ("/langversion:ISO-1");
break;
case LangVersion.ISO_2:
sb.AppendLine ("/langversion:ISO-2");
break;
default:
string message = "Invalid LangVersion enum value '" + compilerParameters.LangVersion.ToString () + "'";
//.........这里部分代码省略.........
示例9: OnBuild
protected override BuildResult OnBuild (IProgressMonitor monitor, ConfigurationSelector configuration)
{
DotNetProject project = Project;
bool hasBuildableFiles = false;
foreach (ProjectFile pf in project.Files) {
if (pf.BuildAction == BuildAction.Compile || pf.BuildAction == BuildAction.EmbeddedResource) {
hasBuildableFiles = true;
break;
}
}
if (!hasBuildableFiles)
return new BuildResult ();
if (project.LanguageBinding == null) {
BuildResult langres = new BuildResult ();
string msg = GettextCatalog.GetString ("Unknown language '{0}'. You may need to install an additional add-in to support this language.", project.LanguageName);
langres.AddError (msg);
monitor.ReportError (msg, null);
return langres;
}
BuildResult refres = null;
HashSet<ProjectItem> itemsToExclude = new HashSet<ProjectItem> ();
foreach (ProjectReference pr in project.References) {
if (pr.ReferenceType == ReferenceType.Project) {
// Ignore non-dotnet projects
Project p = project.ParentSolution != null ? project.ParentSolution.FindProjectByName (pr.Reference) : null;
if (p != null && !(p is DotNetProject))
continue;
if (p == null || pr.GetReferencedFileNames (configuration).Length == 0) {
if (refres == null)
refres = new BuildResult ();
string msg = GettextCatalog.GetString ("Referenced project '{0}' not found in the solution.", pr.Reference);
monitor.ReportWarning (msg);
refres.AddWarning (msg);
}
}
if (!pr.IsValid) {
if (refres == null)
refres = new BuildResult ();
string msg;
if (!pr.IsExactVersion && pr.SpecificVersion) {
msg = GettextCatalog.GetString ("Reference '{0}' not found on system. Using '{1}' instead.", pr.StoredReference, pr.Reference);
monitor.ReportWarning (msg);
refres.AddWarning (msg);
}
else {
bool errorsFound = false;
foreach (string asm in pr.GetReferencedFileNames (configuration)) {
if (!File.Exists (asm)) {
msg = GettextCatalog.GetString ("Assembly '{0}' not found. Make sure that the assembly exists in disk. If the reference is required to build the project you may get compilation errors.", Path.GetFileName (asm));
refres.AddWarning (msg);
monitor.ReportWarning (msg);
errorsFound = true;
itemsToExclude.Add (pr);
}
}
msg = null;
if (!errorsFound) {
msg = GettextCatalog.GetString ("The reference '{0}' is not valid for the target framework of the project.", pr.StoredReference, pr.Reference);
monitor.ReportWarning (msg);
refres.AddWarning (msg);
itemsToExclude.Add (pr);
}
}
}
}
DotNetProjectConfiguration conf = (DotNetProjectConfiguration) project.GetConfiguration (configuration);
// Create a copy of the data needed to compile the project.
// This data can be modified by extensions.
// Also filter out items whose condition evaluates to false
BuildData buildData = new BuildData ();
ProjectParserContext ctx = new ProjectParserContext (project, conf);
buildData.Items = new ProjectItemCollection ();
foreach (ProjectItem item in project.Items) {
if (!itemsToExclude.Contains (item) && (string.IsNullOrEmpty (item.Condition) || ConditionParser.ParseAndEvaluate (item.Condition, ctx)))
buildData.Items.Add (item);
}
buildData.Configuration = (DotNetProjectConfiguration) conf.Clone ();
buildData.Configuration.SetParentItem (project);
buildData.ConfigurationSelector = configuration;
return ProjectExtensionUtil.Compile (monitor, project, buildData, delegate {
ProjectItemCollection items = buildData.Items;
BuildResult res = BuildResources (buildData.Configuration, ref items, monitor);
if (res != null)
return res;
res = project.LanguageBinding.Compile (items, buildData.Configuration, buildData.ConfigurationSelector, monitor);
if (refres != null) {
refres.Append (res);
//.........这里部分代码省略.........
示例10: MsSlnToCmbxHelper
public Solution MsSlnToCmbxHelper (string slnFileName, IProgressMonitor monitor)
{
Solution solution = new Solution();
monitor.BeginTask (GettextCatalog.GetString ("Importing solution"), 2);
try
{
// We invoke the ParseSolution
// by passing the file obtained
ParseSolution (slnFileName, monitor);
// Create all of the prjx files form the csproj files
monitor.BeginTask (null, projNameInfo.Values.Count * 2);
foreach (CsprojInfo pi in projNameInfo.Values) {
string mappedPath = MapPath (Path.GetDirectoryName (slnFileName), pi.csprojpath);
if (mappedPath == null) {
monitor.Step (2);
monitor.ReportWarning (GettextCatalog.GetString ("Project file not found: ") + pi.csprojpath);
continue;
}
SolutionEntityItem prj;
if (pi.NeedsConversion)
prj = CreatePrjxFromCsproj (mappedPath, monitor);
else
prj = (DotNetProject) Services.ProjectService.ReadSolutionItem (monitor, mappedPath);
if (prj == null)
return null;
monitor.Step (1);
solution.RootFolder.Items.Add (prj);
foreach (ItemConfiguration conf in prj.Configurations) {
if (!solution.GetConfigurations ().Contains (conf.Id))
solution.AddConfiguration (conf.Id, false);
}
monitor.Step (1);
}
monitor.EndTask ();
monitor.Step (1);
solution.SetLocation (Path.GetDirectoryName (slnFileName), Path.GetFileNameWithoutExtension(slnFileName));
monitor.Step (1);
return solution;
}
catch (Exception e)
{
monitor.ReportError (GettextCatalog.GetString ("The solution could not be imported."), e);
throw;
}
finally
{
monitor.EndTask ();
}
}
示例11: BuildDone
void BuildDone(IProgressMonitor monitor, ICompilerResult result)
{
lastResult = result;
monitor.Log.WriteLine ();
monitor.Log.WriteLine (String.Format (GettextCatalog.GetString ("---------------------- Done ----------------------")));
foreach (CompilerError err in result.CompilerResults.Errors) {
Runtime.TaskService.AddTask (new Task(null, err));
}
if (result.ErrorCount == 0 && result.WarningCount == 0 && lastResult.FailedBuildCount == 0) {
monitor.ReportSuccess (GettextCatalog.GetString ("Build successful."));
} else if (result.ErrorCount == 0 && result.WarningCount > 0) {
monitor.ReportWarning (String.Format (GettextCatalog.GetString ("Build: {0} errors, {1} warnings."), result.ErrorCount, result.WarningCount));
} else if (result.ErrorCount > 0) {
monitor.ReportError (String.Format (GettextCatalog.GetString ("Build: {0} errors, {1} warnings."), result.ErrorCount, result.WarningCount), null);
} else {
monitor.ReportError (String.Format (GettextCatalog.GetString ("Build failed.")), null);
}
OnEndBuild (lastResult.FailedBuildCount == 0);
}
示例12: RecDeleteDir
void RecDeleteDir(IProgressMonitor monitor, string path)
{
if (Directory.GetFiles (path).Length != 0)
return;
foreach (string dir in Directory.GetDirectories (path))
RecDeleteDir (monitor, dir);
try {
Directory.Delete (path);
} catch {
monitor.ReportWarning ("Directory " + path + " could not be deleted.");
}
}
示例13: PrepareUninstall
internal override void PrepareUninstall(IProgressMonitor monitor, AddinStore service)
{
iaddin = service.Registry.GetAddin (info.Id, true);
if (iaddin == null)
throw new InstallException (string.Format ("The add-in '{0}' is not installed.", info.Name));
AddinDescription conf = iaddin.Description;
if (!File.Exists (iaddin.AddinFile)) {
monitor.ReportWarning (string.Format ("The add-in '{0}' is scheduled for uninstalling, but the add-in file could not be found.", info.Name));
return;
}
// The add-in is a core application add-in. It can't be uninstalled, so it will be disabled.
if (!service.IsUserAddin (iaddin.AddinFile)) {
disablingOnUninstall = true;
return;
}
// If the add-in assemblies are loaded, or if there is any file with a write lock, delay the uninstallation
HashSet<string> files = new HashSet<string> (GetInstalledFiles (conf));
if (AddinManager.CheckAssembliesLoaded (files) || files.Any (f => HasWriteLock (f))) {
uninstallingLoaded = true;
return;
}
if (!service.HasWriteAccess (iaddin.AddinFile))
throw new InstallException (AddinStore.GetUninstallErrorNoRoot (info));
foreach (string path in GetInstalledFiles (conf)) {
if (!service.HasWriteAccess (path))
throw new InstallException (AddinStore.GetUninstallErrorNoRoot (info));
}
tempFolder = CreateTempFolder ();
CopyAddinFiles (monitor, conf, iaddin.AddinFile, tempFolder);
}
示例14: Deploy
//.........这里部分代码省略.........
("Could not add reference to project '{0}'", refp.Name) );
projectReferences.WriteLine (" \\");
projectReferences.Write ("\t");
pref = project.GetRelativeChildPath (dnpc.CompiledOutputName);
projectReferences.Write (MakefileData.ToMakefilePath (pref));
}
configSection.BuildVariablesBuilder.AppendFormat ( "PROJECT_REFERENCES = {0}\n", projectReferences.ToString() );
string buildDir = project.GetRelativeChildPath (config.OutputDirectory);
configSection.BuildVariablesBuilder.AppendFormat ("BUILD_DIR = {0}\n", MakefileData.ToMakefilePath (buildDir));
// Register files built by this configuration.
// Built files won't be distributed.
foreach (string bfile in builtFiles)
ctx.AddBuiltFile (Path.Combine (config.OutputDirectory, bfile));
DeployFileCollection deployFiles = DeployService.GetDeployFiles (
ctx.DeployContext, new SolutionItem[] { project }, config.Selector);
ProcessDeployFilesForConfig (deployFiles, project, configSection, ctx, config);
configSections.Add (configSection);
if (!generateAutotools) {
EmitCustomCommandTargets (config.CustomCommands, project, customCommands, combineConfig.Id,
new CustomCommandType [] {
CustomCommandType.BeforeBuild,
CustomCommandType.AfterBuild,
CustomCommandType.BeforeClean,
CustomCommandType.AfterClean}, monitor);
} else {
if (config.CustomCommands.Count > 0)
monitor.ReportWarning (GettextCatalog.GetString ("Custom commands are not supported for autotools based makefiles. Ignoring."));
}
// Register files generated by the compiler
ctx.AddBuiltFile (project.GetOutputFileName (combineConfig.Selector));
if (config.DebugMode)
ctx.AddBuiltFile (project.GetOutputFileName (combineConfig.Selector) + ".mdb");
if (config.SignAssembly) {
string spath = project.GetRelativeChildPath (config.AssemblyKeyFile);
spath = FileService.NormalizeRelativePath (spath);
extraFiles.Add (MakefileData.ToMakefilePath (spath));
}
if (buildEnabled && pkgs.Count > 0)
ctx.AddRequiredPackages (combineConfig.Id, pkgs);
}
foreach (string ef in extraFiles)
extras.AppendFormat ("\\\n\t{0} ", ef);
Dictionary<string, DeployFileData> commonDeployVars = new Dictionary<string, DeployFileData> (allDeployVars);
foreach (ConfigSection configSection in configSections) {
List<string> toRemove = new List<string> ();
foreach (KeyValuePair<string, DeployFileData> pair in commonDeployVars) {
if (!configSection.DeployFileVars.ContainsKey (pair.Key))
toRemove.Add (pair.Key);
}
foreach (string s in toRemove)
commonDeployVars.Remove (s);
}
示例15: EmitCustomCommandTargets
void EmitCustomCommandTargets (CustomCommandCollection commands, Project project, StringBuilder builder, string configName, CustomCommandType[] types, IProgressMonitor monitor)
{
bool warned = false;
configName = configName.ToUpper ();
foreach (CustomCommandType type in types) {
bool targetEmitted = false;
for (int i = 0; i < commands.Count; i ++) {
CustomCommand cmd = commands [i];
if (cmd.Type != type) {
if (!warned && Array.IndexOf (types, cmd.Type) < 0) {
//Warn (only once) if unsupported custom command is found,
StringBuilder types_list = new StringBuilder ();
foreach (CustomCommandType t in types)
types_list.AppendFormat ("{0}, ", t);
monitor.ReportWarning (GettextCatalog.GetString (
"Custom commands of only the following types are supported: {0}.", types_list.ToString ()));
warned = true;
}
continue;
}
if (!targetEmitted) {
builder.AppendFormat ("{0}_{1}:\n", configName, type.ToString ());
targetEmitted = true;
}
string dir, exe, args;
ResolveCustomCommand (project, cmd, out dir, out exe, out args);
builder.AppendFormat ("\t(cd {0} && {1} {2})\n", dir, exe, args);
}
if (targetEmitted)
builder.Append ("\n");
}
}