VS 2008 Professional、Smart Device .NET C# 项目 - 缓慢构建

Posted

技术标签:

【中文标题】VS 2008 Professional、Smart Device .NET C# 项目 - 缓慢构建【英文标题】:VS 2008 Professional, Smart Device .NET C# project - slow build 【发布时间】:2011-04-25 10:15:28 【问题描述】:

我有 VS 2008 Professional 和一个 Smart Device .NET C# 项目。我总共有大约 100 个 cs 文件。构建需要很长时间,我必须等待链接器大约。每次编译项目需要 1 分钟(60 秒)。我有 Core i3、4GB RAM、7200rpm 磁盘。

是什么原因造成的,我该如何优化构建?任何 Visual Studio 选项?

【问题讨论】:

C# 不使用链接器。将 MSBuild 输出更改为诊断并将您看到的时间粘贴到您的问题中。工具 + 选项、项目和解决方案、构建和运行。 【参考方案1】:

如果您遵循 Hans Passant 评论中的建议并将 MSBuild 设置为诊断输出,它将更清楚地了解所花费的时间。如果您发现您的构建挂在许可编译器 (LC.exe) 上,那么这可能是由于它试图调用服务器并超时。您可以通过更改您的 machine.config 来解决此问题 -

编辑 c:\windows\microsoft.net\framework\v2.0.50727\config\machine.config,并添加以下键:

  <configuration>
    <runtime>
      <generatePublisherEvidence enabled="false"/>

编辑://

根据下面的评论,我做了一点挖掘。平台验证任务有一个已知问题,它在 VS2008 中运行非常缓慢。更多细节可以在这里找到:

http://blogs.msdn.com/b/vsdteam/archive/2006/09/15/756400.aspx

解决此问题的一种方法是在构建中禁用任务本身。为此

1) 打开文件:

%windir%\Microsoft.NET\Framework\v2.0.50727\Microsoft.CompactFramework.Common.Targets

用于编辑。

2) 转到以下行:

Name="PlatformVerificationTask">

并将其更改为:

Name="PlatformVerificationTask" Condition="'$(SkipPlatformVerification)' != 'true'">

3) 将 SkipPlatformVerification 环境变量添加到系统并将其设置为“true”(要重新启用平台验证,请将环境变量设置为“false”)。如果您在设置环境变量方面需要帮助,请阅读 http://vlaurie.com/computers2/Articles/environment.htm。如果您不想添加环境变量,则可以将条件交换为始终为假的内容(即 Condition="'true' == 'false'")

【讨论】:

我检查了诊断级别。在我的例子中,PlatformVerificationTask 需要 290174 毫秒。是什么原因? 我在 3.5 文件夹中找到了 Microsoft.CompactFramework.Common.Targets 文件,而不是 2.0 %windir%\Microsoft.NET\Framework\v3.5\Microsoft.CompactFramework.Common.targets 如果您将 更改为 不想处理环境变量。【参考方案2】:

只需像这样在 .csproj 文件中重新定义一个目标。然后它将在机器上运行,或者当然您可以复制整个代码块并添加条件行。 无论哪种方式,您都不需要修改系统文件。

<Target Name="PlatformVerificationTask"></Target>

【讨论】:

这是一个很好的答案。 Microsoft.CompactFramework.Common.Targets 上的编辑将被 Windows 更新覆盖。这将适用于机器。【参考方案3】:

对于 Windows 10 和框架 3.5

在 C:\Windows\Microsoft.NET\Framework\v3.5 文件夹中,找到 Microsoft.CompactFramework.common.targets 文件。

在这个部分

<Target
    Name="PlatformVerificationTask">
    <PlatformVerificationTask
        PlatformFamilyName="$(PlatformFamilyName)"
        PlatformID="$(PlatformID)"
        SourceAssembly="@(IntermediateAssembly)"
        ReferencePath="@(ReferencePath)"
        TreatWarningsAsErrors="$(TreatWarningsAsErrors)"
        PlatformVersion="$(TargetFrameworkVersion)"/>
</Target>

改变这个,(添加 Condition="'$(DoPlatformVerificationTask)'=='true'" 行)

<Target
    Name="PlatformVerificationTask">
    <PlatformVerificationTask
        Condition="'$(DoPlatformVerificationTask)'=='true'" <!-- Added -->
        PlatformFamilyName="$(PlatformFamilyName)"
        PlatformID="$(PlatformID)"
        SourceAssembly="@(IntermediateAssembly)"
        ReferencePath="@(ReferencePath)"
        TreatWarningsAsErrors="$(TreatWarningsAsErrors)"
        PlatformVersion="$(TargetFrameworkVersion)"/>
</Target> 

【讨论】:

以上是关于VS 2008 Professional、Smart Device .NET C# 项目 - 缓慢构建的主要内容,如果未能解决你的问题,请参考以下文章

我可以将Visual Studio Professional与Team Foundation Server 2008一起使用吗?

VS2008过期救急办法

官方版vs2008至vs2013下载地址

VS 2008 中的 Visual C++ Redistributable Installer 在哪里?

VS快递跟专业有冲突吗?

vs professional 2019 离线安装包下载方法