本文整理汇总了C#中ICSharpCode.SharpDevelop.Project.Solution.FixSolutionConfiguration方法的典型用法代码示例。如果您正苦于以下问题:C# Solution.FixSolutionConfiguration方法的具体用法?C# Solution.FixSolutionConfiguration怎么用?C# Solution.FixSolutionConfiguration使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICSharpCode.SharpDevelop.Project.Solution
的用法示例。
在下文中一共展示了Solution.FixSolutionConfiguration方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LoadProjectInternal
static void LoadProjectInternal(string fileName)
{
if (!Path.IsPathRooted(fileName))
throw new ArgumentException("Path must be rooted!");
string solutionFile = Path.ChangeExtension(fileName, ".sln");
if (File.Exists(solutionFile)) {
LoadSolutionInternal(solutionFile);
if (openSolution != null) {
bool found = false;
foreach (IProject p in openSolution.Projects) {
if (FileUtility.IsEqualFileName(fileName, p.FileName)) {
found = true;
break;
}
}
if (found == false) {
string[,] parseArgs = {{"SolutionName", Path.GetFileName(solutionFile)}, {"ProjectName", Path.GetFileName(fileName)}};
int res = MessageService.ShowCustomDialog(MessageService.ProductName,
StringParser.Parse("${res:ICSharpCode.SharpDevelop.Commands.OpenCombine.SolutionDoesNotContainProject}", parseArgs),
0, 2,
StringParser.Parse("${res:ICSharpCode.SharpDevelop.Commands.OpenCombine.SolutionDoesNotContainProject.AddProjectToSolution}", parseArgs),
StringParser.Parse("${res:ICSharpCode.SharpDevelop.Commands.OpenCombine.SolutionDoesNotContainProject.CreateNewSolution}", parseArgs),
"${res:Global.IgnoreButtonText}");
if (res == 0) {
// Add project to solution
Commands.AddExitingProjectToSolution.AddProject((ISolutionFolderNode)ProjectBrowserPad.Instance.SolutionNode, fileName);
SaveSolution();
return;
} else if (res == 1) {
CloseSolution();
try {
File.Copy(solutionFile, Path.ChangeExtension(solutionFile, ".old.sln"), true);
} catch (IOException){}
} else {
// ignore, just open the solution
return;
}
} else {
// opened solution instead and correctly found the project
return;
}
} else {
// some problem during opening, abort
return;
}
}
Solution solution = new Solution();
solution.Name = Path.GetFileNameWithoutExtension(fileName);
IProjectBinding binding = ProjectBindingService.GetBindingPerProjectFile(fileName);
IProject project;
if (binding != null) {
project = ProjectBindingService.LoadProject(new ProjectLoadInformation(solution, fileName, solution.Name));
if (project is UnknownProject) {
if (((UnknownProject)project).WarningDisplayedToUser == false) {
((UnknownProject)project).ShowWarningMessageBox();
}
return;
}
} else {
MessageService.ShowError(StringParser.Parse("${res:ICSharpCode.SharpDevelop.Commands.OpenCombine.InvalidProjectOrCombine}", new string[,] {{"FileName", fileName}}));
return;
}
solution.AddFolder(project);
ProjectSection configSection = solution.GetSolutionConfigurationsSection();
foreach (string configuration in project.ConfigurationNames) {
foreach (string platform in project.PlatformNames) {
string key;
if (platform == "AnyCPU") { // Fix for SD2-786
key = configuration + "|Any CPU";
} else {
key = configuration + "|" + platform;
}
configSection.Items.Add(new SolutionItem(key, key));
}
}
solution.FixSolutionConfiguration(new IProject[] { project });
if (FileUtility.ObservedSave((NamedFileOperationDelegate)solution.Save, solutionFile) == FileOperationResult.OK) {
// only load when saved succesfully
LoadSolution(solutionFile);
}
}
示例2: SetupSolution
static bool SetupSolution(Solution newSolution, string fileName)
{
string solutionDirectory = Path.GetDirectoryName(fileName);
ProjectSection nestedProjectsSection = null;
bool needsConversion = false;
// read solution files using system encoding, but detect UTF8 if BOM is present
using (StreamReader sr = new StreamReader(fileName, Encoding.Default, true)) {
string line = GetFirstNonCommentLine(sr);
Match match = versionPattern.Match(line);
if (!match.Success) {
MessageService.ShowErrorFormatted("${res:SharpDevelop.Solution.InvalidSolutionFile}", fileName);
return false;
}
switch (match.Result("${Version}")) {
case "7.00":
needsConversion = true;
if (!MessageService.AskQuestion("${res:SharpDevelop.Solution.ConvertSolutionVersion7}")) {
return false;
}
break;
case "8.00":
needsConversion = true;
if (!MessageService.AskQuestion("${res:SharpDevelop.Solution.ConvertSolutionVersion8}")) {
return false;
}
break;
case "9.00":
break;
default:
MessageService.ShowErrorFormatted("${res:SharpDevelop.Solution.UnknownSolutionVersion}", match.Result("${Version}"));
return false;
}
while (true) {
line = sr.ReadLine();
if (line == null) {
break;
}
match = projectLinePattern.Match(line);
if (match.Success) {
string projectGuid = match.Result("${ProjectGuid}");
string title = match.Result("${Title}");
string location = match.Result("${Location}");
string guid = match.Result("${Guid}");
if (!FileUtility.IsUrl(location)) {
location = Path.GetFullPath(Path.Combine(solutionDirectory, location));
}
if (projectGuid == FolderGuid) {
SolutionFolder newFolder = SolutionFolder.ReadFolder(sr, title, location, guid);
newSolution.AddFolder(newFolder);
} else {
IProject newProject = LanguageBindingService.LoadProject(newSolution, location, title, projectGuid);
ReadProjectSections(sr, newProject.ProjectSections);
newProject.IdGuid = guid;
newSolution.AddFolder(newProject);
}
match = match.NextMatch();
} else {
match = globalSectionPattern.Match(line);
if (match.Success) {
ProjectSection newSection = ProjectSection.ReadGlobalSection(sr, match.Result("${Name}"), match.Result("${Type}"));
// Don't put the NestedProjects section into the global sections list
// because it's transformed to a tree representation and the tree representation
// is transformed back to the NestedProjects section during save.
if (newSection.Name == "NestedProjects") {
nestedProjectsSection = newSection;
} else {
newSolution.Sections.Add(newSection);
}
}
}
}
}
// Create solution folder 'tree'.
if (nestedProjectsSection != null) {
foreach (SolutionItem item in nestedProjectsSection.Items) {
string from = item.Name;
string to = item.Location;
ISolutionFolderContainer folder = newSolution.guidDictionary[to] as ISolutionFolderContainer;
folder.AddFolder(newSolution.guidDictionary[from]);
}
}
if (newSolution.FixSolutionConfiguration(newSolution.Projects) || needsConversion) {
// save in new format
newSolution.Save();
}
return true;
}
示例3: SetupSolution
static bool SetupSolution(Solution newSolution)
{
ProjectSection nestedProjectsSection = null;
// read solution files using system encoding, but detect UTF8 if BOM is present
using (StreamReader sr = new StreamReader(newSolution.FileName, Encoding.Default, true)) {
string line = GetFirstNonCommentLine(sr);
Match match = versionPattern.Match(line);
if (!match.Success) {
MessageService.ShowErrorFormatted("${res:SharpDevelop.Solution.InvalidSolutionFile}", newSolution.FileName);
return false;
}
switch (match.Result("${Version}")) {
case "7.00":
case "8.00":
MessageService.ShowError("${res:SharpDevelop.Solution.CannotLoadOldSolution}");
return false;
case "9.00":
case "10.00":
case "11.00":
case "12.00":
break;
default:
MessageService.ShowErrorFormatted("${res:SharpDevelop.Solution.UnknownSolutionVersion}", match.Result("${Version}"));
return false;
}
using (AsynchronousWaitDialog waitDialog = AsynchronousWaitDialog.ShowWaitDialog("Loading solution")) {
nestedProjectsSection = SetupSolutionLoadSolutionProjects(newSolution, sr, waitDialog);
}
}
// Create solution folder 'tree'.
if (nestedProjectsSection != null) {
foreach (SolutionItem item in nestedProjectsSection.Items) {
string from = item.Name;
string to = item.Location;
if (newSolution.guidDictionary.ContainsKey(to) && newSolution.guidDictionary.ContainsKey(from)) {
// ignore invalid entries
ISolutionFolderContainer folder = newSolution.guidDictionary[to] as ISolutionFolderContainer;
folder.AddFolder(newSolution.guidDictionary[from]);
}
}
}
if (!newSolution.ReadOnly && (newSolution.FixSolutionConfiguration(newSolution.Projects))) {
// save in new format
newSolution.Save();
}
return true;
}
示例4: Load
public static Solution Load(string fileName)
{
Solution newSolution = new Solution();
solutionBeingLoaded = newSolution;
newSolution.Name = Path.GetFileNameWithoutExtension(fileName);
string extension = Path.GetExtension(fileName).ToUpperInvariant();
if (extension == ".CMBX") {
if (!MessageService.AskQuestion("${res:SharpDevelop.Solution.ImportCmbx}")) {
return null;
}
newSolution.fileName = Path.ChangeExtension(fileName, ".sln");
ICSharpCode.SharpDevelop.Project.Converter.CombineToSolution.ConvertSolution(newSolution, fileName);
if (newSolution.FixSolutionConfiguration(newSolution.Projects)) {
newSolution.Save();
}
} else if (extension == ".PRJX") {
if (!MessageService.AskQuestion("${res:SharpDevelop.Solution.ImportPrjx}")) {
return null;
}
newSolution.fileName = Path.ChangeExtension(fileName, ".sln");
ICSharpCode.SharpDevelop.Project.Converter.CombineToSolution.ConvertProject(newSolution, fileName);
if (newSolution.FixSolutionConfiguration(newSolution.Projects)) {
newSolution.Save();
}
} else {
newSolution.fileName = fileName;
if (!SetupSolution(newSolution, fileName)) {
return null;
}
}
solutionBeingLoaded = null;
return newSolution;
}