There is a remote possibility that my problem here is related to the one in the previous message. Anyway, this one is about the same Sitemap Provider, but this one is about the syntax of the manifest file.
My manifest file now contains 3 packages (when finished and ready for publication, it should contain 4). 2 of those are of the type="Module" and without the 3rd package, they install without problem. The 3rd package is of the type "Provider". Nowhere from the documentation could I conclude clearly if this type is apropriate for this purpose. The package has the customary heading nodes (friendly name, description, owner, release notes, licence and dependencies.
The components section has 2 components, one of the Config and one of the Assembly type. Without the Config component, the manifest installs without complaining. It is the config component that blocks the installation:<component type="Config">
<configFile>web.config</configFile>
<install>
<configuration>
<nodes>
<node path="/configuration/dotnetnuke/sitemap/providers" action="update" key="name" collision="overwrite">
<add name="KhmerSupportNewsDeskSiteMapProvider" type="KhmerSupport.Providers.NewsDesk.Sitemap, KhmerSupport.NewsDesk"
providerPath="~\DesktopModules\KhmerSupport.NewsDesk\Providers\SitemapProvider\KhmerSupport.NewsDesk.SitemapProvider\" />
</node>
</nodes>
</configuration>
</install>
<uninstall>
<configuration>
<nodes>
<node path="/configuration/dotnetnuke/sitemap/providers/add[@name='KhmerSupportNewsDeskSiteMapProvider']" action="remove" />
</nodes>
</configuration>
</uninstall>
</component>
I've tried replacing both nodes with <node />, it still did not install.
In the event viewer, I find this explanation for the error:
InnerException: Object reference not set to an instance of an object.
FileName:
FileLineNumber: 0
FileColumnNumber: 0
Method: DotNetNuke.Services.Installer.Installers.ConfigInstaller.ReadManifest
StackTrace:
Message: DotNetNuke.Services.Exceptions.PageLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object. at
DotNetNuke.Services.Installer.Installers.ConfigInstaller.ReadManifest(XPathNavigator manifestNav) at
DotNetNuke.Services.Installer.Installers.InstallerFactory.GetInstaller(XPathNavigator manifestNav, PackageInfo package) at
DotNetNuke.Services.Installer.Installers.PackageInstaller.ReadComponents(XPathNavigator manifestNav) at
DotNetNuke.Services.Installer.Installers.PackageInstaller.ReadManifest(XPathNavigator manifestNav) at
DotNetNuke.Services.Installer.Installers.PackageInstaller..ctor(String packageManifest, InstallerInfo info) at
DotNetNuke.Services.Installer.Installer.ProcessPackages(XPathNavigator rootNav) at DotNetNuke.Services.Installer.Installer.ReadManifest
(Stream stream) at DotNetNuke.Services.Installer.Installer.ReadManifest(Boolean deleteTemp) at
DotNetNuke.Modules.Admin.Extensions.Install.wizInstall_NextButtonClick(Object sender, WizardNavigationEventArgs e) at
System.Web.UI.WebControls.Wizard.OnNextButtonClick(WizardNavigationEventArgs e) at
System.Web.UI.WebControls.Wizard.OnBubbleEvent(Object source, EventArgs e) at
System.Web.UI.WebControls.Wizard.WizardChildTable.OnBubbleEvent(Object source, EventArgs args) at
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) at System.Web.UI.WebControls.LinkButton.OnCommand
(CommandEventArgs e) at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) at
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) at
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) at
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) at System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace ---
Adding the provider in web.config did make the provider appear in dnn's Sitemap Provider Module's provider table but not under Providers on Admin>Extensions. Is that necessary or required? Would one not need that for uninstallation? The component type="Provider" does not have any effect thereto according to what I read here.
So what am I overlooking?