构建 x64 项目不会记住已在 F# 中构建的项目
当我在 x86 下第二次或第三次构建 F# 解决方案时,不会构建未更改的项目,这会显着加快构建过程。当我在 x64 下尝试相同的操作时,即使项目没有更改,也会始终构建所有项目。这使得构建过程非常缓慢,因为我的解决方案中有很多项目。
我怎样才能避免这种情况?
When I build an F# solution under x86 for a second or third time, projects which did not change are not built and it speeds up the building process significantly. When I try the same under x64, all the projects are built always even when they did not change. This makes the building process very slow as I have many projects in the solution.
How can I avoid that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
经过一番搜索后,我找到了发生这种情况的原因。
我曾经引用过一个名为Matlab的程序的COM。事实上,它引用了 mlapp.tlb 并在构建时将其编译成 dll。有趣的是,对于 x86,它工作得很好,并且在没有任何更改的情况下它不会强制所有项目重建,但使用 x64,即使没有任何更改,它也会强制所有项目重建...
解决方案是编译使用 TlbImp.exe 将 tlb 放入我们自己的 dll 中,并引用该 dll。但我想知道,这不是一个错误吗?
编辑:这是一个错误:
http://connect.microsoft .com/VisualStudio/feedback/details/655035/tlb-com-reference-in-f-on-x64
So after a little bit of search I have found why this happens.
I used to reference a COM of a program called Matlab. In fact it referenced mlapp.tlb and on build it compiled it into a dll. An interesting thing is that for x86 it works just fine and it does not force all the projects to rebuild when nothing has changed but using x64, it forces all the projects to rebuild even when nothing has changed...
The solution is to compile the tlb into a dll on our own using TlbImp.exe and reference the dll instead. But I wonder, is it not a bug??
EDIT: It is a bug:
http://connect.microsoft.com/VisualStudio/feedback/details/655035/tlb-com-reference-in-f-on-x64
这听起来好像你还没有在 Visual Studio 的“工具”-> 中打开“仅在运行时构建启动项目和依赖项”。 “选项”-> 《项目与解决方案》-> “构建并运行”。
This sounds like you haven't switched on "Only build startup projects and dependencies on Run" in Visual Studio's "Tools" -> "Options" -> "Projects and Solutions" -> "Build and Run".