1
我有超过100个c#项目的解决方案。我们总是为所有程序集制作CopyLocal选项以避免一些问题。有时候一些开发人员使用CopyLocal选项在程序集文件中选择True。这会在以后运行软件时产生问题MS Build fail CopyLocal True
如果CopyLocal选项为True,是否有可能使构建活动失败?
我们正在使用MS Build和Cruise控制网自动化构建过程。
我有超过100个c#项目的解决方案。我们总是为所有程序集制作CopyLocal选项以避免一些问题。有时候一些开发人员使用CopyLocal选项在程序集文件中选择True。这会在以后运行软件时产生问题MS Build fail CopyLocal True
如果CopyLocal选项为True,是否有可能使构建活动失败?
我们正在使用MS Build和Cruise控制网自动化构建过程。
简答:是!
我不是MSBuild专家,但我知道如何与NAnt做到这一点。这非常简单,并且与MSBuild实现相同的结果应该没有太大的区别。这是过程:
True
:count(/Project/ItemGroup/Reference/Private[text()="True"])
对于项目引用:
count(/Project/ItemGroup/ProjectReference/Private[text()="True"])
如果结果大于0,你有CopyLocal集引用到True
,所以构建失败。 陷阱:请注意,如果节点Private
缺失,CopyLocal也被认为是True
。
这是一个XY问题。必须处理CopyLocal = False的项目文件对于需要测试其代码的开发者来说非常痛苦。所以他们当然会一遍又一遍地改变设置,忘记把它放回去。可能是故意的,因为他们厌倦了这种麻烦。构建失败只会带来更多的麻烦。使其适用于该设置。 – 2012-01-18 18:01:48
根据主席的回答,你可以做你想问的问题。但是为了读取每个文件的值,为什么不把它重置为'false'呢?或者我在这里错过了什么? – mickeyf 2012-01-18 22:03:45