WinForm/Console、または私の場合は VS Unit Test のような、asp.net 以外のアプリケーション内で標準の XmlSiteMapProvider を使用するための回避策があるかどうか疑問に思います。
.sitemap
次のコードは、プライベートGetConfigDocument
メソッド内でファイルへのパスを作成できないため、失敗します。
XmlSiteMapProvider provider = new XmlSiteMapProvider();
NameValueCollection providerAttributes = new NameValueCollection();
providerAttributes.Add("siteMapFile", "Web.sitemap");
provider.Initialize("XmlSiteMapReader", providerAttributes);
provider.BuildSiteMap();
適切な解決策は、別のプロバイダーを作成することだと思います。