【问题标题】:Why does Visual Studio generates the following file .NETFramework,Version=v4.5.AssemblyAttributes.cs in the temp folder为什么Visual Studio会在temp文件夹下生成如下文件.NETFramework,Version=v4.5.AssemblyAttributes.cs
【发布时间】:2023-04-05 15:52:01
【问题描述】:

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

文件内容如下:

// <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】:

    为什么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>
    

    希望这会有所帮助。

    【讨论】:

    • 如果我将它添加到我的文件中,然后,更改 .csproj 文件以针对新版本的 .net 框架,.AssemblyAttributes 文件不会重新生成。我必须重建或删除 .AssemblyAttributes 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2022-11-08
    相关资源
    最近更新 更多