Skip to content

Commit 4f68111

Browse files
committed
Fix the Umbraco installer so that the container name is merged in the web.config.install.xdt so that the VPP works when the container is not called "media"
1 parent ad2f1c3 commit 4f68111

File tree

2 files changed

+39
-6
lines changed

2 files changed

+39
-6
lines changed

src/UmbracoFileSystemProviders.Azure.Installer/InstallerController.cs

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public class InstallerController : UmbracoAuthorizedApiController
5050
private readonly string fileSystemProvidersConfigInstallXdtPath = HostingEnvironment.MapPath("~/App_Plugins/UmbracoFileSystemProviders/Azure/Install/FileSystemProviders.config.install.xdt");
5151
private readonly string fileSystemProvidersConfigPath = HostingEnvironment.MapPath("~/Config/FileSystemProviders.config");
5252

53+
private readonly string webConfigXdtPath = HostingEnvironment.MapPath("~/App_Plugins/UmbracoFileSystemProviders/Azure/Install/web.config.install.xdt");
54+
5355
// /Umbraco/backoffice/FileSystemProviders/Installer/GetParameters
5456
public IEnumerable<Parameter> GetParameters()
5557
{
@@ -69,7 +71,7 @@ public InstallerStatus PostParameters(IEnumerable<Parameter> parameters)
6971
return InstallerStatus.ConnectionError;
7072
}
7173

72-
if (SaveParametersToXdt(this.fileSystemProvidersConfigInstallXdtPath, parameters))
74+
if (SaveParametersToFileSystemProvidersXdt(this.fileSystemProvidersConfigInstallXdtPath, parameters) && SaveContainerNameToWebConfigXdt(this.webConfigXdtPath, containerName))
7375
{
7476
if (!ExecuteFileSystemConfigTransform() || !ExecuteWebConfigTransform())
7577
{
@@ -105,7 +107,7 @@ public InstallerStatus PostParameters(IEnumerable<Parameter> parameters)
105107
return InstallerStatus.SaveXdtError;
106108
}
107109

108-
internal static bool SaveParametersToXdt(string xdtPath, IEnumerable<Parameter> newParameters)
110+
internal static bool SaveParametersToFileSystemProvidersXdt(string xdtPath, IEnumerable<Parameter> newParameters)
109111
{
110112
var result = false;
111113

@@ -166,6 +168,37 @@ internal static bool SaveParametersToXdt(string xdtPath, IEnumerable<Parameter>
166168
return result;
167169
}
168170

171+
internal static bool SaveContainerNameToWebConfigXdt(string xdtPath, string containerName)
172+
{
173+
var result = false;
174+
175+
var document = XmlHelper.OpenAsXmlDocument(xdtPath);
176+
177+
// Inset a Parameter element with Xdt remove so that updated values get saved (for upgrades), we don't want this for NuGet packages which is why it's here instead
178+
var nsMgr = new XmlNamespaceManager(document.NameTable);
179+
var strNamespace = "http://schemas.microsoft.com/XML-Document-Transform";
180+
nsMgr.AddNamespace("xdt", strNamespace);
181+
182+
var locationElement = document.SelectSingleNode(string.Format("//location"));
183+
if (locationElement != null) locationElement.Attributes["path"].Value = containerName;
184+
185+
try
186+
{
187+
document.Save(xdtPath);
188+
189+
// No errors so the result is true
190+
result = true;
191+
}
192+
catch (Exception e)
193+
{
194+
// Log error message
195+
var message = "Error saving XDT Parameters: " + e.Message;
196+
LogHelper.Error(typeof(InstallerController), message, e);
197+
}
198+
199+
return result;
200+
}
201+
169202
internal static bool SaveBlobPathToImageProcessorSecurityXdt(string xdtPath, string rootUrl, string containerName)
170203
{
171204
var result = false;

src/UmbracoFileSystemProviders.Azure.Installer/Properties/VersionInfo.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
//
1515
// You can specify all the values or you can default the Build and Revision Numbers
1616
// by using the '*' as shown below:
17-
// [assembly: AssemblyVersion("0.5.0.10")]
18-
[assembly: AssemblyVersion("0.5.0.0")]
19-
[assembly: AssemblyFileVersion("0.5.0.0")]
20-
[assembly: AssemblyInformationalVersion("0.5.0")]
17+
// [assembly: AssemblyVersion("1.1.0.123")]
18+
[assembly: AssemblyVersion("1.1.0.123")]
19+
[assembly: AssemblyFileVersion("1.1.0.123")]
20+
[assembly: AssemblyInformationalVersion("1.1.0-alpha-000123")]

0 commit comments

Comments
 (0)