In this Article, let us see about an error which I recently faced on my development phase.
ArgumentException: Failed to load receiver assembly "………………" for feature "…………………." (ID: xxxx-xxxx-xxxx-xxx).: System.IO.FileNotFoundException: Could not load file or assembly ‘……………..’ or one of its dependencies. The system cannot find the file specified.
I was trying to attach a FeatureReceiver to my customer feature using Visual Studio 2012 on SharePoint 2013. I created the Feature Receiver assembly and deployed using the VS 2012 itself. It got deployed without any problem.
But, when I tried to activate the feature, I got the strange exception like mentioned on the title. It seems, there is a problem with the DLL, which the SharePoint is searching in GAC but it is not available there. That was the first level of understanding I came up by looking at the exception.
I saw the GAC. There also the DLL is present. Sometime later, even I could not attach to Process also. As the Attach To Process always seeks for the latest DLL and the PDB files.
Later I found a work around for this. With a small work around the problem got resolved and the debugger also starts working fine.
1. Go to your solution. I would recommend to create a Globally deployed solution for the projects which has the FeatureReceivers.
2. I.e., segregate the features which has the event receivers.
3. The solution will looks like below.
5. Open the Package.
7. Go to Advance Tab
9. Add the DLL here by clicking “Add Assembly from Project Output”.
10. Now, deploy the project.
11. Now, we will get an error as mentioned below.
13. The error message is “Both FeatureREceiverSample.csproj” and FeatureREceiverSample contains a file that deploys to the same package location: FeatureReceiverSample.dll
14. To overcome the error, Select the project and press F4. The properties window will come.
16. Change the property “Include Assembly In Package” as False.
18. Now, rebuild and deploy the project.
19. The feature Receiver works like charm.
20. Even if not working, do an IISREST, Close the Visual Studio and ReOpen, or even a restart of the server will also help.