Index: Externals/NDoc3/src/MsdnDocumenter.cs
==================================================================
--- Externals/NDoc3/src/MsdnDocumenter.cs
+++ Externals/NDoc3/src/MsdnDocumenter.cs
@@ -1425,10 +1425,11 @@
File.Open(fullPath, FileMode.Create),
ctx.CurrentFileEncoding)) {
string DocLangCode = Enum.GetName(typeof(SdkLanguage), MyConfig.SdkDocLanguage).Replace("_", "-");
MsdnXsltUtilities utilities = new MsdnXsltUtilities(ctx._nameResolver, ctx.CurrentAssemblyName, MyConfig.SdkDocVersionString, DocLangCode, MyConfig.SdkLinksOnWeb, ctx.CurrentFileEncoding);
+ ctx._nameResolver.utilities = utilities;
if (arguments.GetParam("assembly-name", string.Empty) == null) {
arguments.AddParam("assembly-name", String.Empty, ctx.CurrentAssemblyName);
}
arguments.AddParam("ndoc-title", String.Empty, MyConfig.Title);
Index: Externals/NDoc3/src/NameResolver.cs
==================================================================
--- Externals/NDoc3/src/NameResolver.cs
+++ Externals/NDoc3/src/NameResolver.cs
@@ -9,10 +9,11 @@
///
///
public class NameResolver {
public const string EXT = ".html";
+ public MsdnXsltUtilities utilities;
private readonly bool mergeAssemblies;
private readonly StringDictionary fileNames = new StringDictionary();
private readonly StringDictionary elemNames = new StringDictionary();
private readonly ReferenceTypeDictionary assemblyReferences = new ReferenceTypeDictionary();
@@ -455,11 +456,25 @@
filename = fileNames[memberId];
}
// Debug.Assert(filename != null, string.Format("Filename for assembly:memberId [{0}:{1}] not found", currentAssemblyName, memberId));
// Debug.WriteLine(string.Format("GetFilenameForIdInternal('{0}','{1}') => {2}", currentAssemblyName, memberId, filename));
- return filename ?? string.Empty;
+ if (filename != null)
+ return filename;
+
+ if (utilities != null)
+ {
+ if (memberId.Length > 2 && memberId[1] == ':')
+ memberId = memberId.Substring(2);
+
+ filename = utilities.FormatOnlineSDKLink(memberId);
+
+ if (filename != null)
+ return filename;
+ }
+
+ return String.Empty;
}
private string GetFilenameForIdSpecial(string assemblyName, string memberId, string postfix) {
string fn = GetFilenameForIdInternal(assemblyName, memberId);
if (fn != null && fn.Length > EXT.Length) {