本文整理汇总了C#中EnvDTE.SaveAs方法的典型用法代码示例。如果您正苦于以下问题:C# EnvDTE.SaveAs方法的具体用法?C# EnvDTE.SaveAs怎么用?C# EnvDTE.SaveAs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EnvDTE
的用法示例。
在下文中一共展示了EnvDTE.SaveAs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetReference
/// <summary>
/// Alternate implementation via EnvDTE.Project - untested
/// </summary>
/// <param name="project"></param>
/// <param name="existingReferencesMap"></param>
/// <param name="existingReferenceRootPath"></param>
/// <param name="ReferenceVar"></param>
public static void SetReference(EnvDTE.Project project, HashSet<string> existingReferencesMap,string existingReferenceRootPath, string ReferenceVar)
{
var vsproject = project.Object as VSLangProj.VSProject;
// note: you could also try casting to VsWebSite.VSWebSite
Dictionary<int, string> updatedRefs = new Dictionary<int, string>();
int count = 0;
foreach (VSLangProj.Reference reference in vsproject.References)
{
count++;
Console.WriteLine(reference.Name);
if (reference.SourceProject == null)
{
if (
existingReferencesMap.Contains(
ProjectUtils.GetFullRefPathFromRelPath(existingReferenceRootPath, reference.Path)))
{
string temp = reference.Path;
temp = temp.Replace(existingReferenceRootPath, ReferenceVar);
updatedRefs.Add(count, temp);
}
}
}
if (updatedRefs.Any())
{
foreach (var kvp in updatedRefs)
{
Reference r = vsproject?.References.Item(kvp.Key);
if (r != null)
{
Console.WriteLine(r.Name);
try
{
r.Remove();
project.SaveAs(project.FileName);
vsproject = project.Object as VSLangProj.VSProject;
}
catch (Exception ex)
{
System.Diagnostics.Trace.WriteLine(ex);
}
}
if (vsproject != null)
{
try
{
// check if the old one was actually removed
// Add the new ref.
vsproject.References.Add(kvp.Value);
}
catch (Exception ex)
{
string message = $"Could not add Revf. \n Exception: {ex.Message}";
System.Diagnostics.Trace.WriteLine(message);
}
}
}
}
}