c# - Windows Mobile 6.5 构建时间 (VS2008)

标签 c# visual-studio visual-studio-2008 msbuild windows-mobile

我有一个小型 Windows 移动应用程序,大约有 25 个表单,可能有 50 个类,分为 3 个项目。 当我构建项目时,在 Debug模式下按正常的 CTRL-SHIFT-B 需要 25 到 40 分钟

我试过 skip platform verification hack,但它似乎没有帮助。

环境是VS 2008
Windows Mobile 6.5.3
紧凑型框架 2.0

<ProductVersion>9.0.30729</ProductVersion>
<OSVersion>5.02</OSVersion>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<NativePlatformName>Windows Mobile 6.5.3 Professional DTK</NativePlatformName>

计算机是 HP EliteBook 8440p,配备 i3 @2,4Ghz、4gb 内存。
有足够的 Ram 可用(使用 2,2 Gb)。
编译期间 CPU 使用率约为 25%。

当我构建时,Visual Studio 及其所有子窗口在 95% 的时间里都是空白的。

事件查看器不会显示任何特定的警告,例如硬盘损坏等。

更新 1

在进程监视器跟踪中,我可以看到在构建过程中 devenv.exe 中有正常的网络事件。 VSS 可能与构建有关吗? (我通过今天在旁路模式下使用的 vpn 隧道到达 vss-repository。)

最佳答案

首先是个好消息:您可以缩短较长的构建时间,
这里是“坏消息”,工作:

  1. 尝试使用 MSBuild 构建它避免 VS2008 中断或卡住构建
  2. 试着找出构建速度缓慢的原因,您可以在构建过程中观察日志。
  3. 写出特别慢的部分
  4. 尝试通过首先加速最慢的项目来解决“构建时间长的问题”。只要您想要更好的性能或直到没有更多项目需要加速,就可以这样做。

构建过程中的常见问题:

  1. Com References 如果它们不是单独构建 (TLBIMP.exe)
    可能会减慢您的构建速度 尝试先构建互操作库,然后再随心所欲地使用它们
  2. Post/PreBuild 事件 可以做一些有用但缓慢的事情...尽可能清理并删除它们
    使用Run when build updates the project output 在项目的 BuildEvents 属性中,仅当构建更改二进制文件时才调用 PostBuild 事件。
  3. Soultion 文件中的引用 会停止您的 MSBUILD 构建,因此您应该明确地将它们修复到项目文件中
  4. 尝试直接/一次部署在构建每个项目之后部署比在构建解决方案之后部署要慢,制作一个“dist.bat”,它首先构建然后部署。

您可以使用 Visual Studio 宏 为当前打开的解决方案启动 MSBUILD:

Public Module Builder

    Sub BuildSolutionDebug()
        SaveAll()
        Run("", "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe", """" & GetSolutionName() & """ /t:ReBuild /p:Configuration=Debug /p:Platform=""Mixed Platforms""")
    End Sub

    Sub Run(ByVal folder As String, ByVal file As String, ByVal arguments As String)
        Dim process As New System.Diagnostics.Process()
        process.Start(System.IO.Path.Combine(folder, file), arguments)
        Try
            process.WaitForExit()
        Catch ex As Exception

        End Try

    End Sub

    Sub SaveAll()
        DTE.ExecuteCommand("File.SaveAll")
    End Sub

    Function GetSolutionName() As String
        Return DTE.Solution.FullName
    End Function

End Module

如果您有其他问题或想讨论某个问题,请与我联系。我很乐意帮助你。
我也很乐意阅读您对问题的解决方案,在这一点上您的构建速度很慢!

关于c# - Windows Mobile 6.5 构建时间 (VS2008),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149853/

相关文章:

c# Fluent SQL Helper - 语法改进

c# - 使用 DeveXpress 在 C# 中自动设置垂直列标题的高度

c# - 如何对 64 位 .NET 4.7 项目进行单元测试?

visual-studio - Visual Studio 2008 - 跳转到行号快捷方式

c# - 从Windows Phone媒体库中选择图片并设置为页面背景

c# - 循环浏览工作表

c++ - 使用 C++ Stream API 发生访问冲突异常

asp.net - Ajax ConfirmButtonExtender 在 OnClientClick javascript 代码之前触发

visual-studio - 这个字符串在我的 Visual Studio *.sln 文件中的用途是什么?

c# - 我可以创建一个窗口,其客户区是透明的(使用透明键)并可以点击吗?