|
1
|
| GregC Benjamin Baumann · 技术社区 · 15 年前 |
|
|
1
2
msbuild中有一个bug,无法正确处理在解决方案级别添加的项目依赖项。看一看 http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/80cc6447-b720-4806-8395-7c257b207613/ 和 https://connect.microsoft.com/VisualStudio/feedback/details/613284/msbuild-4-does-not-respect-build-order-when-building-a-solution Microsoft在Connect页上发布的一条消息表明,它在64位版本的msbuild中是一个错误。尝试切换到32位版本,看看是否解决了问题。 如果你做不到,或者做不到,还有两个选择。它们都不是理想的。 第一个选项是手动编辑SLN文件并更改项目在文件中的显示顺序,以匹配所需的构建顺序。我认为维克托的解决方案会是一个更好的主意,因为对解决方案文件的其他更改可能会再次覆盖这些更改。 第二个选项是手动导出解决方案的msbuild“metaproject”,直接编辑生成顺序,并添加所需的任何其他自定义设置。据我所读,即使是在微软,他们也不“狗食”解决方案编译——相反,他们在构建过程中完全避免它们,而是使用自定义的msbuild文件。 要生成metaproj,请将环境变量msbuildEmitSolution设置为1。在解决方案上运行了msbuild之后,您应该在同一目录中看到一个“.metaproj”文件-它包含msbuild在内存中生成的用于编译解决方案的脚本。您应该能够进行必要的编辑,签入它,然后设置构建服务器来编译它。 这个问题将在下一个版本的Visual Studio中消失。Microsoft Connect页面上有一条来自Microsoft的帖子,该帖子将在下一版本中修复,有传言称,他们正在删除.sln文件,并将其替换为适当的msbuild项目。 |
|
|
Eli Sternbach · dotnet发布-无限循环 2 年前 |
|
|
Community wiki · 关于简化构建服务器设置的软件的建议 2 年前 |
|
|
Alan Deep · 以编程方式编译/构建C#项目 7 年前 |