Question

I have got a VS2010 solution which creates several assemblies for .NET 2.0.

This also includes satellite assemblies.

When I create everything with VS2010 it is fine. But I have a XP machine working as a build server using MSBuild. The satellite assemblies created from there are not recognized. Looking with ILDASM I see the VS2010 create metadata version 2 while MSBuild creates version 4. I guess that means VS2010 creates the correct .NET2 versions while MSBuild creates only the main assemblies for .NET2 but the satellite assemblies are .NET4.

I already know about this topic from here: What decides the target framework version of a satellite assembly?

But that does not work for me.

Any ideas how I can make the build server create .NET2 satellite assemblies? I might be able to enhance my script if I know how to call AL.exe properly.

Was it helpful?

Solution

Okay, I hacked it out.

The build machine (WinXP) has a Windows SDK 7.1 with AL.exe 10.0.30.x. This is the one always creating .NET4-satellite assemblies.

My machine (Win7) with VS2010 has a Windows SDK 7.0a with AL.exe 9.0.30729.1. This is the one respecting the target framework.

I have (after backup) replace the AL.exe from the build machine with the one from mine. This works but I consider it a very dirty workaround.

If anyone knows a better way I would appreciate any help!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top