diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj b/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj
index e5f80264ac..c02726d9cd 100644
--- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/BooBinding.csproj
@@ -83,6 +83,9 @@
+
+ Always
+
diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/DefaultAssemblyInfo.boo b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/DefaultAssemblyInfo.boo
new file mode 100644
index 0000000000..0f9e27ce77
--- /dev/null
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/DefaultAssemblyInfo.boo
@@ -0,0 +1,26 @@
+import System.Reflection
+import System.Runtime.CompilerServices
+
+// Information about this assembly is defined by the following
+// attributes.
+//
+// change them to the information which is associated with the assembly
+// you compile.
+
+[assembly: AssemblyTitle('')]
+[assembly: AssemblyDescription('')]
+[assembly: AssemblyConfiguration('')]
+[assembly: AssemblyCompany('')]
+[assembly: AssemblyProduct('')]
+[assembly: AssemblyCopyright('')]
+[assembly: AssemblyTrademark('')]
+[assembly: AssemblyCulture('')]
+
+// The assembly version has following format :
+//
+// Major.Minor.Build.Revision
+//
+// You can specify all values by your own or you can build default build and revision
+// numbers with the '*' character (the default):
+
+[assembly: AssemblyVersion("1.0.0.0")]
diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/FormsProject.xpt b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/FormsProject.xpt
index 912adf8b2d..4b0b2ec249 100644
--- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/FormsProject.xpt
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/FormsProject.xpt
@@ -70,35 +70,7 @@ partial class MainForm(System.Windows.Forms.Form):
self.Name = 'MainForm'
]]>
-
-
+
diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Library.xpt b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Library.xpt
index 8add952bf1..44f1664374 100644
--- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Library.xpt
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Templates/Library.xpt
@@ -38,35 +38,7 @@ class MyClass:
pass
]]>
-
-
+
diff --git a/src/Main/Base/Project/Src/Internal/Templates/File/FileDescriptionTemplate.cs b/src/Main/Base/Project/Src/Internal/Templates/File/FileDescriptionTemplate.cs
index 899d6dfcf2..ac7d330dfe 100644
--- a/src/Main/Base/Project/Src/Internal/Templates/File/FileDescriptionTemplate.cs
+++ b/src/Main/Base/Project/Src/Internal/Templates/File/FileDescriptionTemplate.cs
@@ -31,7 +31,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
}
}
- public FileDescriptionTemplate(XmlElement xml)
+ public FileDescriptionTemplate(XmlElement xml, string hintPath)
{
name = xml.GetAttribute("name");
language = xml.GetAttribute("language");
@@ -39,7 +39,16 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
copyToOutputDirectory = xml.GetAttribute("copyToOutputDirectory");
dependentUpon = xml.GetAttribute("dependentUpon");
subType = xml.GetAttribute("subType");
- content = xml.InnerText;
+ if (xml.HasAttribute("src")) {
+ try {
+ content = File.ReadAllText(Path.Combine(hintPath, xml.GetAttribute("src")));
+ } catch (Exception e) {
+ content = "Error reading content from " + Path.Combine(hintPath, xml.GetAttribute("src")) + ":\n" + e.ToString();
+ LoggingService.Warn(content);
+ }
+ } else {
+ content = xml.InnerText;
+ }
}
///
diff --git a/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs b/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs
index 934354ea9b..2d7a624433 100644
--- a/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs
+++ b/src/Main/Base/Project/Src/Internal/Templates/File/FileTemplate.cs
@@ -311,7 +311,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
XmlNodeList nodes = files.ChildNodes;
foreach (XmlNode filenode in nodes) {
if (filenode is XmlElement) {
- this.files.Add(new FileDescriptionTemplate((XmlElement)filenode));
+ this.files.Add(new FileDescriptionTemplate((XmlElement)filenode, Path.GetDirectoryName(filename)));
}
}
diff --git a/src/Main/Base/Project/Src/Internal/Templates/Project/CombineDescriptor.cs b/src/Main/Base/Project/Src/Internal/Templates/Project/CombineDescriptor.cs
index 9af2f46313..f4903b2134 100644
--- a/src/Main/Base/Project/Src/Internal/Templates/Project/CombineDescriptor.cs
+++ b/src/Main/Base/Project/Src/Internal/Templates/Project/CombineDescriptor.cs
@@ -28,17 +28,17 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
internal List projectDescriptors = new List();
internal List solutionFoldersDescriptors = new List();
- internal void Read(XmlElement element)
+ internal void Read(XmlElement element, string hintPath)
{
name = element.GetAttribute("name");
foreach (XmlNode node in element.ChildNodes) {
if (node != null) {
switch (node.Name) {
case "Project":
- projectDescriptors.Add(ProjectDescriptor.CreateProjectDescriptor((XmlElement)node));
+ projectDescriptors.Add(ProjectDescriptor.CreateProjectDescriptor((XmlElement)node, hintPath));
break;
case "SolutionFolder":
- solutionFoldersDescriptors.Add(new SolutionFolderDescriptor((XmlElement)node));
+ solutionFoldersDescriptors.Add(new SolutionFolderDescriptor((XmlElement)node, hintPath));
break;
}
}
@@ -64,9 +64,9 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
return true;
}
- public SolutionFolderDescriptor(XmlElement element)
+ public SolutionFolderDescriptor(XmlElement element, string hintPath)
{
- Read(element);
+ Read(element, hintPath);
}
public SolutionFolderDescriptor(string name)
@@ -143,7 +143,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
return combineLocation;
}
- public static CombineDescriptor CreateCombineDescriptor(XmlElement element)
+ public static CombineDescriptor CreateCombineDescriptor(XmlElement element, string hintPath)
{
CombineDescriptor combineDescriptor = new CombineDescriptor(element.Attributes["name"].InnerText);
@@ -155,7 +155,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
combineDescriptor.startupProject = element["Options"]["StartupProject"].InnerText;
}
- combineDescriptor.mainFolder.Read(element);
+ combineDescriptor.mainFolder.Read(element, hintPath);
return combineDescriptor;
}
}
diff --git a/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs b/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs
index 41070ce1bb..11c10418b6 100644
--- a/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs
+++ b/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs
@@ -221,7 +221,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
}
}
- public static ProjectDescriptor CreateProjectDescriptor(XmlElement element)
+ public static ProjectDescriptor CreateProjectDescriptor(XmlElement element, string hintPath)
{
ProjectDescriptor projectDescriptor = new ProjectDescriptor(element.Attributes["name"].InnerText, element.Attributes["directory"].InnerText);
@@ -234,7 +234,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
foreach (XmlNode node in element["Files"].ChildNodes) {
if (node != null && node.Name == "File") {
XmlElement filenode = (XmlElement)node;
- projectDescriptor.files.Add(new FileDescriptionTemplate(filenode));
+ projectDescriptor.files.Add(new FileDescriptionTemplate(filenode, hintPath));
}
}
}
diff --git a/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs b/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs
index 0f420ed7ba..fe410d890d 100644
--- a/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs
+++ b/src/Main/Base/Project/Src/Internal/Templates/Project/ProjectTemplate.cs
@@ -199,13 +199,13 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
}
if (doc.DocumentElement["Solution"] != null) {
- combineDescriptor = CombineDescriptor.CreateCombineDescriptor(doc.DocumentElement["Solution"]);
+ combineDescriptor = CombineDescriptor.CreateCombineDescriptor(doc.DocumentElement["Solution"], Path.GetDirectoryName(fileName));
} else if (doc.DocumentElement["Combine"] != null) {
- combineDescriptor = CombineDescriptor.CreateCombineDescriptor(doc.DocumentElement["Combine"]);
+ combineDescriptor = CombineDescriptor.CreateCombineDescriptor(doc.DocumentElement["Combine"], Path.GetDirectoryName(fileName));
}
if (doc.DocumentElement["Project"] != null) {
- projectDescriptor = ProjectDescriptor.CreateProjectDescriptor(doc.DocumentElement["Project"]);
+ projectDescriptor = ProjectDescriptor.CreateProjectDescriptor(doc.DocumentElement["Project"], Path.GetDirectoryName(fileName));
}
// Read Actions;