为啥Visual Studio会在temp文件夹下生成如下文件.NETFramework,Version=v4.5.AssemblyAttributes.cs
Posted
技术标签:
【中文标题】为啥Visual Studio会在temp文件夹下生成如下文件.NETFramework,Version=v4.5.AssemblyAttributes.cs【英文标题】: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 【发布时间】:2019-02-11 12:24:41 【问题描述】:为什么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。
【问题讨论】:
【参考方案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 文件。以上是关于为啥Visual Studio会在temp文件夹下生成如下文件.NETFramework,Version=v4.5.AssemblyAttributes.cs的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2013安装路径为啥我选择不再C盘,它还装在C盘,怎么处理
为啥 Visual Studio 不能在“不调试就启动”模式下打开文件?
Visual Studio 2010在编译c++时为啥有错误也没有下划波浪线?
每次打开visual studio2019都会在桌面生成一个.vs文件夹?
VS2012打开.sln项目文件时,会在根目录下自动创建“Visual Studio 2012”目录和其子目录,请教如何取消?