Browse Source

Fixed forum-5455: Importing old Visual Studio projects with non-ASCII characters in system encoding fails.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1179 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
7d9df59085
  1. 24
      src/Main/Base/Project/Src/Project/Converter/PrjxToSolutionProject.cs

24
src/Main/Base/Project/Src/Project/Converter/PrjxToSolutionProject.cs

@ -209,10 +209,8 @@ namespace ICSharpCode.SharpDevelop.Project.Converter @@ -209,10 +209,8 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
static Dictionary<string, XslCompiledTransform> xsltDict = new Dictionary<string, XslCompiledTransform>();
public static void RunConverter(string inFile, string outFile, string script, Conversion conversion)
public static void RunConverter(TextReader inFile, string outFile, string script, Conversion conversion)
{
conversion.basePath = Path.GetDirectoryName(inFile);
XslCompiledTransform xslt;
if (xsltDict.ContainsKey(script)) {
xslt = xsltDict[script];
@ -255,9 +253,13 @@ namespace ICSharpCode.SharpDevelop.Project.Converter @@ -255,9 +253,13 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
else
convertedFileName = Path.ChangeExtension(fileName, ".csproj");
RunConverter(fileName, convertedFileName, "CSharp_prjx2csproj.xsl", conversion);
RunConverter(fileName, convertedFileName + ".user", "CSharp_prjx2csproj_user.xsl", conversion);
conversion.basePath = Path.GetDirectoryName(fileName);
using (StreamReader fileReader = new StreamReader(fileName)) {
RunConverter(fileReader, convertedFileName, "CSharp_prjx2csproj.xsl", conversion);
}
using (StreamReader fileReader = new StreamReader(fileName)) {
RunConverter(fileReader, convertedFileName + ".user", "CSharp_prjx2csproj_user.xsl", conversion);
}
return LanguageBindingService.LoadProject(convertedFileName, Conversion.GetProjectName(fileName));
}
@ -279,9 +281,15 @@ namespace ICSharpCode.SharpDevelop.Project.Converter @@ -279,9 +281,15 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
if (Solution.SolutionBeingLoaded != null) {
Solution.ReadSolutionInformation(Solution.SolutionBeingLoaded.FileName, conversion);
}
RunConverter(old, fileName, "vsnet2msbuild.xsl", conversion);
conversion.basePath = Path.GetDirectoryName(fileName);
Encoding tmp = Encoding.Default;
string content = ICSharpCode.TextEditor.Util.FileReader.ReadFileContent(old, ref tmp, tmp);
RunConverter(new StringReader(content), fileName, "vsnet2msbuild.xsl", conversion);
if (File.Exists(oldUserFile)) {
RunConverter(oldUserFile, userFile, "vsnet2msbuild_user.xsl", conversion);
content = ICSharpCode.TextEditor.Util.FileReader.ReadFileContent(oldUserFile, ref tmp, tmp);
RunConverter(new StringReader(content), userFile, "vsnet2msbuild_user.xsl", conversion);
}
}
}

Loading…
Cancel
Save