为什么Visual Studio在temp文件夹中生成以下文件.NETFramework,Version = v4.5.AssemblyAttributes.cs

问题描述 投票:2回答:1

为什么Visual Studio在构建解决方案时在当前用户的临时文件夹.NETFramework,Version=v4.5.AssemblyAttributes.cs中生成以下文件C:\Users\[USERNAME]\AppData\Local\Temp

该文件的内容如下所示:

// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]

我想到了这个问题,因为我在重启我的电脑时遇到了这个文件缺失的问题,请参阅Visual Studio Rebuilds unmodified projects sometimes after a PC reboot

c# visual-studio visual-studio-2013 msbuild
1个回答
2
投票

为什么Visual Studio在temp文件夹中生成以下文件.NETFramework,Version = v4.5.AssemblyAttributes.cs

由于您对生成此文件的原因感兴趣,我建议您查看此文档:

MSBuild: unnecessary rebuilds because of generated AssemblyAttributes.cs

Kirill Osenkov在该文章中使用了一个例子来解释为什么文件是在temp文件夹中生成的。

同样,我们可以在该文章中生成此文件之后知道这些不必要的重建的原因以及如何解决此问题。

因此,将以下行添加到csproj文件中:

  <PropertyGroup>
    <TargetFrameworkMonikerAssemblyAttributesPath>$([System.IO.Path]::Combine('$(IntermediateOutputPath)','$(TargetFrameworkMoniker).AssemblyAttributes$(DefaultLanguageSourceExtension)'))</TargetFrameworkMonikerAssemblyAttributesPath>
  </PropertyGroup>

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.