I have a custom template Project that appears to be working correctly when using CustomParameters. However if I remove the CustomParameters and add in a node for WizardExtension then I start receiving errors complaining that VS is "Unable to Copy the File xxxxxx.xxx From the Project Template to the Project". The wizard itself runs correctly, but there is something weird going on with the output from the wizard not being properly utilized in the custom template. I essentially want to allow the user to provide CustomParmeters rather than hardcoding them in the template.
Working template:=======================
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"
Type="Project">
<TemplateData>
<DefaultName>ModuleName</DefaultName>
<Name>DotNetNuke Compiled Module</Name>
<Description>Creates a DotNetNuke Compiled Module - C# ( Requires Visual
Studio 2005 and the Web Application Project extension )</Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType></ProjectSubType>
<SortOrder>10</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>DotNetNuke.ico</Icon>
</TemplateData>
<TemplateContent>
<CustomParameters>
<CustomParameter Name="$YourCompany$" Value="YourCompany"/>
<CustomParameter Name="$WebsiteDirectory$" Value="D:\Websites\DNNStore_440"
/>
</CustomParameters>
<Project TargetFileName="$safeprojectname$.csproj" File="ModuleName.csproj"
ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="01.00.00.SqlDataProvider">01.00.00.SqlDataProvider</ProjectItem>
<Folder Name="App_LocalResources" TargetFolderName="App_LocalResources">
<ProjectItem ReplaceParameters="true" TargetFileName="Edit$safeprojectname$.ascx.resx">EditModuleName.ascx.resx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.ascx.resx">Settings.ascx.resx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="View$safeprojectname$.ascx.resx">ViewModuleName.ascx.resx</ProjectItem>
</Folder>
<Folder Name="Components" TargetFolderName="Components">
<ProjectItem ReplaceParameters="true" TargetFileName="DataProvider.cs">DataProvider.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$Controller.cs">ModuleNameController.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$Info.cs">ModuleNameInfo.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="SqlDataProvider.cs">SqlDataProvider.cs</ProjectItem>
</Folder>
<Folder Name="Documentation" TargetFolderName="Documentation">
<ProjectItem ReplaceParameters="true" TargetFileName="Documentation.css">Documentation.css</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Documentation.html"
OpenInWebBrowser="true">Documentation.html</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="logo.gif">logo.gif</ProjectItem>
</Folder>
<ProjectItem ReplaceParameters="true" TargetFileName="Edit$safeprojectname$.ascx">EditModuleName.ascx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Edit$safeprojectname$.ascx.designer.cs">EditModuleName.ascx.designer.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Edit$safeprojectname$.ascx.cs">EditModuleName.ascx.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.dnn">ModuleName.dnn</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.SqlDataProvider">ModuleName.SqlDataProvider</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.ascx">Settings.ascx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.ascx.designer.cs">Settings.ascx.designer.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.ascx.cs">Settings.ascx.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Uninstall.SqlDataProvider">Uninstall.SqlDataProvider</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="View$safeprojectname$.ascx">ViewModuleName.ascx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="View$safeprojectname$.ascx.designer.cs">ViewModuleName.ascx.designer.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="View$safeprojectname$.ascx.cs">ViewModuleName.ascx.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
BROKEN Template:
=======================
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"
Type="Project">
<TemplateData>
<DefaultName>ModuleName</DefaultName>
<Name>DotNetNuke Compiled Module</Name>
<Description>Creates a DotNetNuke Compiled Module - C# ( Requires Visual
Studio 2005 and the Web Application Project extension )</Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType></ProjectSubType>
<SortOrder>10</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>DotNetNuke.ico</Icon>
</TemplateData>
<TemplateContent>
<CustomParameters>
<CustomParameter Name="$YourCompany2$" Value="YourCompany"/>
<CustomParameter Name="$WebsiteDirectory2$" Value="D:\Websites\DNNStore_440"
/>
</CustomParameters>
<Project TargetFileName="$safeprojectname$.csproj" File="ModuleName.csproj"
ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="01.00.00.SqlDataProvider">01.00.00.SqlDataProvider</ProjectItem>
<Folder Name="App_LocalResources" TargetFolderName="App_LocalResources">
<ProjectItem ReplaceParameters="true" TargetFileName="Edit$safeprojectname$.ascx.resx">EditModuleName.ascx.resx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.ascx.resx">Settings.ascx.resx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="View$safeprojectname$.ascx.resx">ViewModuleName.ascx.resx</ProjectItem>
</Folder>
<Folder Name="Components" TargetFolderName="Components">
<ProjectItem ReplaceParameters="true" TargetFileName="DataProvider.cs">DataProvider.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$Controller.cs">ModuleNameController.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$Info.cs">ModuleNameInfo.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="SqlDataProvider.cs">SqlDataProvider.cs</ProjectItem>
</Folder>
<Folder Name="Documentation" TargetFolderName="Documentation">
<ProjectItem ReplaceParameters="true" TargetFileName="Documentation.css">Documentation.css</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Documentation.html"
OpenInWebBrowser="true">Documentation.html</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="logo.gif">logo.gif</ProjectItem>
</Folder>
<ProjectItem ReplaceParameters="true" TargetFileName="Edit$safeprojectname$.ascx">EditModuleName.ascx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Edit$safeprojectname$.ascx.designer.cs">EditModuleName.ascx.designer.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Edit$safeprojectname$.ascx.cs">EditModuleName.ascx.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.dnn">ModuleName.dnn</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.SqlDataProvider">ModuleName.SqlDataProvider</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.ascx">Settings.ascx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.ascx.designer.cs">Settings.ascx.designer.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.ascx.cs">Settings.ascx.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Uninstall.SqlDataProvider">Uninstall.SqlDataProvider</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="View$safeprojectname$.ascx">ViewModuleName.ascx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="View$safeprojectname$.ascx.designer.cs">ViewModuleName.ascx.designer.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="View$safeprojectname$.ascx.cs">ViewModuleName.ascx.cs</ProjectItem>
</Project>
</TemplateContent>
<WizardExtension>
<Assembly>DNNTemplateWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1c554e41e80e16fb,
processorArchitecture=MSIL</Assembly>
<FullClassName>DotNetNuke.Template.CompiledModuleWizard</FullClassName>
</WizardExtension>
</VSTemplate>
Thanks
Joe Brinkman
ASP.Net MVP
DotNetNuke Corporation