我有一个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,我可能能够增强我的脚本。
答案 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。 这有效,但我认为这是一个非常肮脏的解决方法。
如果有人知道更好的方式,我会感激任何帮助!