SmartAssembly build failed. Type initializer threw exception

KirillSkKirillSk Posts: 3
edited October 9, 2012 6:05AM in SmartAssembly
Hi, I am using SmartAssembly 6.1 in my build tasks.
Here is fragment of my .csproj file.
<UsingTask TaskName="SmartAssembly.MSBuild.Tasks.Build" AssemblyName="SmartAssembly.MSBuild.Tasks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7f465a1c156d4d57" />
  <Target Name="BeforeBuild">
    <CreateItem Include="$(ProjectDir)\**\*.*.resx">
      <Output TaskParameter="Include" ItemName="EmbeddedResource" />
    </CreateItem>
  </Target>
  <Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release' AND '$(Obfuscate)' == 'Yes' ">
    <SmartAssembly.MSBuild.Tasks.Build ProjectFile="CoreDomain.saproj" MarkAsReleased="True" />
  </Target>
I get following error when start building:
SmartAssembly build failed: The type initializer for 'SmartAssembly.ConsoleApp' threw an exception.
At the same time if I launch SmartAssembly application, create new project and build it, build succeeds. What could be wrong?

Comments

  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    There is not enough information in the error message to say what the problem is, but off the top of me head I would say it was something to do with Log4Net. Because SA has to share its' process space with other add-ins, I've found some of them using different versions of the third-party log4net dll, and if an incompatible version gets loaded, it will cause a problem in the Visual Studio build.

    The only way I've found around that is to not use the MSBUILD task DLL and change the post-build action to an EXEC task instead.
  • There is not enough information in the error message to say what the problem is, but off the top of me head I would say it was something to do with Log4Net. Because SA has to share its' process space with other add-ins, I've found some of them using different versions of the third-party log4net dll, and if an incompatible version gets loaded, it will cause a problem in the Visual Studio build.

    The only way I've found around that is to not use the MSBUILD task DLL and change the post-build action to an EXEC task instead.
    That works perfectly, thank you!
Sign In or Register to comment.