YSOD during Workflow 2.1 installation in Umbraco 4.7.2
(Note: I know this post is practically a duplicate of the one I posted in the Questions, Bug reports and Suggestions forum, but I'm reposting as requested by Darren)
Hello,
I'm having a bit of trouble with the Workflow 2.1 package. The site I'm working on has Umbraco 4.7.2 (running in WinServer 2008, with a .net 4.0 Integrated application pool) and has the following packages installed:
AutoFolders 2.0.3
Categorisation 2.2.2.0
ConfigTree 2.0
Diplo Link Checker 1.3
FamFamFam Icon Package 1.0
Flodeble 1.0
MultipleFileUpload 1.2
uComponents 4.1.0
Umbraco Contour 1.1.13.2
Whenever I try to install Workflow, I get a YSOD a couple of seconds after the installation begins. This YSOD does not break the site (or backend) in any way. When I have a look at the 'Installed Packages" node in the Developer section, the Workflow package appears as if it had installed correctly. At this point, none of the tabs belonging to the Workflow package appear in the Content or Developer sections of the backend. After that, I uninstalled the package, enabled Debug Compilation in my web.config file and tried installing the package again. My result was this new YSOD:
And, once again, the Workflow package appears under the "Installed Packages" node and none of the Workflow's tabs are visible in the backend. Has this happened to anyone before with this version of the package? Is there anything missing from my production environment (like installing .net 4.5 or something of the similar nature)?. Thanks in advance.
[UPDATE] We seem to have found the source of the error. The YSOD screen shown in the previous post only occurs when .net 4.5 is not installed in the machine. We came to this conclusion after several failed attempts to install Workflow 2.1 in our WinServer 2008. We proceeded to test the package on several (local) test machines. We found out that the package installed in some machines but failed on others (despite having identical IIS configurations and Umbraco versions). That’s when we noticed that machines that had no trouble with the installation had .net 4.5 installed, and the ones where it failed didn’t have it. Afterwards, we decided to uninstall .net 4.5 in the machines where the package had installed correctly and (voila!) the package stopped working.
We are aware that the Workflow 2.1 package is compiled targeting .net 4.0. We decided to download the source code and compile it ourselves in hopes of getting a working (locally compiled) assembly. Upon inspection of the source code we came upon a pair of “merge” scripts that use ILMerge to merge several assemblies into one. I believe that this program is the culprit of making the 2.1 package fail in machines without .net 4.5 installed. I make this last statement based on a post in Matt Wrock’s blog:
“… If you use ILMerge to merge several assemblies into one on a machine with .Net 4.5 Beta installed and intend to have this merged assembly run on a machine running .Net 4.0, DO NOT use the following TargetPlatform switch value:
YSOD during Workflow 2.1 installation in Umbraco 4.7.2
(Note: I know this post is practically a duplicate of the one I posted in the Questions, Bug reports and Suggestions forum, but I'm reposting as requested by Darren)
Hello,
I'm having a bit of trouble with the Workflow 2.1 package. The site I'm working on has Umbraco 4.7.2 (running in WinServer 2008, with a .net 4.0 Integrated application pool) and has the following packages installed:
Whenever I try to install Workflow, I get a YSOD a couple of seconds after the installation begins. This YSOD does not break the site (or backend) in any way. When I have a look at the 'Installed Packages" node in the Developer section, the Workflow package appears as if it had installed correctly. At this point, none of the tabs belonging to the Workflow package appear in the Content or Developer sections of the backend. After that, I uninstalled the package, enabled Debug Compilation in my web.config file and tried installing the package again. My result was this new YSOD:
And, once again, the Workflow package appears under the "Installed Packages" node and none of the Workflow's tabs are visible in the backend. Has this happened to anyone before with this version of the package? Is there anything missing from my production environment (like installing .net 4.5 or something of the similar nature)?. Thanks in advance.
P.S.: sorry for the re-post.
[UPDATE] We seem to have found the source of the error. The YSOD screen shown in the previous post only occurs when .net 4.5 is not installed in the machine. We came to this conclusion after several failed attempts to install Workflow 2.1 in our WinServer 2008. We proceeded to test the package on several (local) test machines. We found out that the package installed in some machines but failed on others (despite having identical IIS configurations and Umbraco versions). That’s when we noticed that machines that had no trouble with the installation had .net 4.5 installed, and the ones where it failed didn’t have it. Afterwards, we decided to uninstall .net 4.5 in the machines where the package had installed correctly and (voila!) the package stopped working.
We are aware that the Workflow 2.1 package is compiled targeting .net 4.0. We decided to download the source code and compile it ourselves in hopes of getting a working (locally compiled) assembly. Upon inspection of the source code we came upon a pair of “merge” scripts that use ILMerge to merge several assemblies into one. I believe that this program is the culprit of making the 2.1 package fail in machines without .net 4.5 installed. I make this last statement based on a post in Matt Wrock’s blog:
http://www.mattwrock.com/post/2012/02/29/What-you-should-know-about-running-ILMerge-on-Net-45-Beta-assemblies-targeting-Net-40.aspx
I quote the following lines from the post:
“… If you use ILMerge to merge several assemblies into one on a machine with .Net 4.5 Beta installed and intend to have this merged assembly run on a machine running .Net 4.0, DO NOT use the following TargetPlatform switch value:
/targetplatform:"v4,c:\windows\Microsoft.NET\Framework\v4.0.30319"
Instead use this:
/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0" “
I hope this information is useful for those who are trying to use the workflow 2.1 package in boxes without .net 4.0.
Hi there. Thanks for posting this. So what's the solution moving forward?
is working on a reply...