MSBuild为错误的框架版本创建附属程序集

时间:2013-04-03 14:38:43

标签: visual-studio-2010 msbuild .net-2.0 satellite-assembly

我有一个VS2010解决方案,它为.NET 2.0创建了几个程序集。

这还包括卫星装配。

当我使用VS2010创建所有内容时,它很好。但我有一台XP机器作为使用MSBuild的构建服务器工作。从那里创建的附属装配体无法识别。看看ILDASM我看到VS2010创建元数据版本2而MSBuild创建版本4.我想这意味着VS2010创建了正确的.NET2版本,而MSBuild只创建.NET2的主要程序集,但卫星程序集是.NET4。

我已经从这里了解了这个主题:What decides the target framework version of a satellite assembly?

但这对我不起作用。

我是如何让构建服务器创建.NET2附属程序集的? 如果我知道如何正确调用AL.exe,我可能能够增强我的脚本。

1 个答案:

答案 0 :(得分:2)

好的,我把它砍掉了。

构建计算机(WinXP)具有带有AL.exe 10.0.30.x的Windows SDK 7.1。这是一个始终创建.NET4-satellite程序集的人。

我的VS2010机器(Win7)有一个带有AL.exe 9.0.30729.1的Windows SDK 7.0a。这是一个尊重目标框架的人。

我(在备份之后)用我的一个替换构建机器中的AL.exe。 这有效,但我认为这是一个非常肮脏的解决方法。

如果有人知道更好的方式,我会感激任何帮助!