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

时间:2018-09-06 09:16:23

标签: c# visual-studio visual-studio-2013 msbuild

为什么在构建解决方案时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")]

这个问题浮现在脑海,因为重新启动PC时出现问题,该文件丢失,请参见Visual Studio Rebuilds unmodified projects sometimes after a PC reboot

1 个答案:

答案 0 :(得分: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>

希望这会有所帮助。