BadImageFormatException error throws while executing a console application - c#

I'm getting below error while executing a C# console application. It's seems to me as machine specific issue. It's working on my windows 8 machine with .Net framework 4.5. But it's not working on my friend's PC with the same configuration. I have no idea how to solve this.
I tried with changing Visual studio application properties - Build properties to "X86" and "Any CPU". But it's not working.
A little help please.
System.BadImageFormatException: Could not load file or assembly 'System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f
5f7f11d50a3a' or one of its dependencies. The module was expected to contain an assembly manifest.
File name: 'System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at System.ServiceModel.Diagnostics.TraceUtility.SetEtwProviderId()
at System.ServiceModel.ChannelFactory..ctor()
at System.ServiceModel.ChannelFactory`1..ctor(Type channelType)
at System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress)
at System.ServiceModel.ConfigurationEndpointTrait`1.CreateSimplexFactory()
at System.ServiceModel.ConfigurationEndpointTrait`1.CreateChannelFactory()
at System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait)
at System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef()
at System.ServiceModel.ClientBase`1..ctor()
at ApiKeyVerifier.Program.Main(String[] args) in D:\Projects\ApiKeyVerifier\Program.cs:line 17
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Related

VS Installer Project is not pulling in all system.io.compression

I have a solution written in C# on .Net 4.6.1. The 2 projects are Windows Service and VS Installer. The windows service project has many references with 2 of them being system.io.compression and system.io.compression.filesystem.
The project compiles without error; however, when I compile the VS installer project I'm getting a missing file error for system.io.compression. I refresh the dependencies but the reference still doesn't show up. Why doesn't the installer project pull in the reference from the windows service project while all the other resources are available?
I've tried removing and re-adding the reference to the windows service project
I've tried adding the file referenced in the windows service project to the File System > Application Folder and it compiles with no errors but when installed and running I get the following error
System.IO.FileLoadException: Could not load file or assembly 'System.IO.Compression, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) File name: 'System.IO.Compression, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' ---> System.IO.FileLoadException: Could not load file or assembly 'System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) File name: 'System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. at efaactagent.Archive.Zip(String sourceFile, String destinationFile) at efaactagent.Jobitem.LogManagement()
check your *.config in all projects
Try to remove all bindings redirects and regenerate them again via PM> Get-Project –All | Add-BindingRedirect

Could not load file or assembly Microsoft.Practices.ServiceLocation, Version=1.3.0.0

Here is the error I'm getting when I run my application (.NET 4.5):
Server Error in '/' Application.
Could not load file or assembly 'Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Assembly Load Trace: The following information can be helpful to determine why the assembly 'Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' could not be loaded.
=== Pre-bind state information ===
LOG: DisplayName = Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
(Fully-specified)
LOG: Appbase = file:///C:/Users/Austin/Documents/FileStore/FileStore.Web/
LOG: Initial PrivatePath = C:\Users\Austin\Documents\FileStore\FileStore.Web\bin
Calling assembly : Chicago.Security, Version=1.0.5826.21195, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\Austin\Documents\FileStore\FileStore.Web\web.config
LOG: Using host configuration file: C:\Users\Austin\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 1.3.0.0 redirected to 1.3.0.0.
LOG: Post-policy reference: Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
LOG: The same bind was seen before, and was failed with hr = 0x80070002.
Stack Trace:
[FileNotFoundException: Could not load file or assembly 'Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.]
Chicago.Security.AuthenticationModule.application_AuthenticateRequest(Object sender, EventArgs e) +0
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +141
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
I installed the nuget package CommonServiceLocator, but I'm still getting this error. The weird thing is that there is an assembly binding redirect in my web.config file, but the assembly does not appear in the reference list for my project and I cannot find it anywhere to add it. I'm still relatively new to ASP.NET, so I can't seem to pin down what the issue is exactly. Another thing I found to try is to set 'Enable 32 bit applications' to true for my application pool in the IIS Manager, but this did not fix my problem. I've been stuck on this for a while, so any help would be appreciated.
Well after hours of research and trying different things, uninstalling and reinstalling CommonServiceLocator from Nuget seemed to do the trick. I'm still amazed at how messy .NET apps are with their dependencies.
Make sure you have installed version 1.3.0 and not a different version.
Nuget link: https://www.nuget.org/packages/CommonServiceLocator/1.3.0
Open VS--> Tools --> Nuget Package manager--> Package manager Console
>PM Install-Package CommonServiceLocator
This should help!
I was getting this error because I was using the new syntax of C# 7.0 in an older version. Once I reverted back to the older syntax, this was resolved.
Specifically, I was using:-
// Newer syntax.
if (int.TryParse(args.Value, out var value))
{
args.IsValid = value > 0;
}
// Older supported version which resolved the issue.
int value;
if (int.TryParse(args.Value, out value))
{
args.IsValid = value > 0;
}
I had opened a VS2015 Solution in VS2017 and found missing references, not sure why.
Could not locate the assembly "CommonServiceLocator"
Could not locate the assembly "Unity.RegistrationByConvention"
Could not locate the assembly "Unity.ServiceLocation"
Could not locate the assembly "Unity.Configuration"
Could not locate the assembly "Unity.Interception.Configuration"
Could not locate the assembly "Unity.Container"
Build your project first to get a list of missing references (that show the release numbers). Then open the NUGET package manager for the solution and simply reinstall. Note: there are dependency chains to the install order, if an install fails, find the pre-req. dependency and install first, then try again. Takes about 10 minutes to correct.
They have updated the package, below change is required in code if you download the latest commonservicelocator package.
using Microsoft.Practices.ServiceLocation;
to
using CommonServiceLocator;

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.WindowsAzure.ServiceRuntime, Version=2.5.0.0

On Azure I am getting the following error
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.WindowsAzure.ServiceRuntime, Version=2.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.WindowsAzure.ServiceRuntime, Version=2.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
at redacted.Encryption.EncryptionManager.get_storageConectionString()
at redacted..ctor() in<>:line 49
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
The answer was that I updated to azure tools 2.7 and was referencing the 2.5 dll version.
1) Delete the reference to the 2.5 dll in your project (or .csproj file if necessary) and add the reference to the 2.7 System.WindowsAzure.ServiceRuntime dll.
2)Redeploy.
3)Profit.

Gallio 3.4 is not loading assemblies of .NET version 4.5

My assemblies are in .NET framework version 4.5 and I am using gallio 3.4 but whenever I am running, gallio.echo.exe with dll is throwing exception
System.BadImage Format Exception : could not load file
An attempt was made to load a program with an incorrect format.
FileName: Winshuttle.SapTransaction.Recorder, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null FusionLog: WRN: Assembly binding
logging is turned OFF. To enable assembly bind failure logging, set
the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)
to 1. Note: There is some performance penalty associated with assembly
bind failure logging. To turn this feature off, remove the registry
value [HKLM\Software\Microsoft\Fusion!EnableLog].
HResult: -2147024885
Please suggest whats the issue. Is there any other gallio version to run 4.5 assemblies

log4net not logging and throwing error

I have been using log4Net to write in a text file when there is any exception in my web service, this was working but today it started to throw error.
System.Web.Services.Protocols.SoapException: Server was unable to
process request. ---> System.TypeInitializationException: The type
initializer for.. threw an exception.
---> System.IO.FileLoadException: Could not load file or assembly
'log4net, Version=1.2.9.0, Culture=neutral,
PublicKeyToken=b32731d11ce58905' or one of its dependencies. The
located assembly's manifest definition does not match the assembly
reference. (Exception from HRESULT: 0x80131040)
File name: 'log4net, Version=1.2.9.0, Culture=neutral,
PublicKeyToken=b32731d11ce58905'
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
If you have any inputs on this stack info, pls. share it.
Did you change the code, or did this just start happening?
I've seen this error occur when the target processor architecture was mismatched. Did you change that by any chance?
If this isn't the case, and you have Windows SDK installed, you can use the Fusion Log Viewer to view assembly binding logs. The utility should be installed on your machine.

Categories

Resources