当前位置: 首页>>代码示例>>C#>>正文


C# EnvDTE.SaveAs方法代码示例

本文整理汇总了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);
                        }
                    }
                }
            }
        }
开发者ID:jsnmc,项目名称:ReferenceHacker,代码行数:69,代码来源:ReferenceHackerCore.cs


注:本文中的EnvDTE.SaveAs方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。