本文整理汇总了C#中IPropertyMap.Write方法的典型用法代码示例。如果您正苦于以下问题:C# IPropertyMap.Write方法的具体用法?C# IPropertyMap.Write怎么用?C# IPropertyMap.Write使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPropertyMap
的用法示例。
在下文中一共展示了IPropertyMap.Write方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteSolutionProperties
/// <summary>
/// Writes the enlistment state to the solution
/// </summary>
/// <param name="pPropBag">The p prop bag.</param>
public void WriteSolutionProperties(IPropertyMap propertyBag)
{
if (!IsActive || !IsSolutionManaged)
return;
#if DEBUG_ENLISTMENT
SortedList<string, string> projects = new SortedList<string, string>(StringComparer.Ordinal);
SortedList<string, string> values = new SortedList<string, string>(StringComparer.OrdinalIgnoreCase);
string projectDir = SolutionDirectory;
IVisualGitSolutionSettings ss = GetService<IVisualGitSolutionSettings>();
Uri solutionUri = null;
if (ss != null)
projectDir = ss.ProjectRootWithSeparator;
else
projectDir = projectDir.TrimEnd('\\') + '\\';
string normalizedProjectDir = GitTools.GetNormalizedFullPath(projectDir);
foreach (SccProjectData project in _projectMap.Values)
{
if (string.IsNullOrEmpty(project.ProjectDirectory) || !project.IsManaged)
continue; // Solution folder or unmanaged?
bool enlist = false;
bool enlistOptional = true;
IVsSccProjectEnlistmentChoice projectChoice = project.VsProject as IVsSccProjectEnlistmentChoice;
if (projectChoice != null)
{
VSSCCENLISTMENTCHOICE[] choice = new VSSCCENLISTMENTCHOICE[1];
if (ErrorHandler.Succeeded(projectChoice.GetEnlistmentChoice(choice)))
{
switch (choice[0])
{
case VSSCCENLISTMENTCHOICE.VSSCC_EC_NEVER:
// Don't take any enlistment actions
break;
case VSSCCENLISTMENTCHOICE.VSSCC_EC_COMPULSORY:
enlist = true;
enlistOptional = false;
break;
case VSSCCENLISTMENTCHOICE.VSSCC_EC_OPTIONAL:
enlistOptional = enlist = true;
break;
}
}
}
string dir = GitTools.GetNormalizedFullPath(project.ProjectDirectory);
string file = project.ProjectFile;
if (!enlist && dir.StartsWith(projectDir, StringComparison.OrdinalIgnoreCase)
|| normalizedProjectDir.Equals(dir, StringComparison.OrdinalIgnoreCase))
{
// The directory is below our project root, we can ignore it
// - Yes we can, unless the directory is switched or nested below the root
// TODO: Check those conditions somewhere else and reuse here
continue;
}
SvnItem item = StatusCache[dir];
if (solutionUri == null)
{
SvnItem solDirItem = StatusCache[SolutionDirectory];
if (solDirItem != null && solDirItem.IsVersioned && solDirItem.Status != null && solDirItem.Status.Uri != null)
solutionUri = solDirItem.Status.Uri;
}
if (item == null || !item.IsVersioned || item.Status == null || item.Status.Uri == null)
continue;
Uri itemUri = item.Status.Uri;
if (solutionUri != null)
itemUri = solutionUri.MakeRelativeUri(itemUri);
if (StatusCache.IsValidPath(file))
file = PackageUtilities.MakeRelative(dir, file);
// This should match the directory as specified in the solution!!!
// (It currently does, but only because we don't really support virtual folders yet)
dir = PackageUtilities.MakeRelative(projectDir, dir);
string prefix = project.ProjectGuid.ToString("B").ToUpperInvariant();
projects.Add(prefix, prefix);
prefix = "Project." + prefix;
values[prefix + ".Path"] = Quote(dir);
//.........这里部分代码省略.........