WPF新建项目AssemblyInfo.cs生成异常:CS1010常量换行错误
解决WPF新项目AssemblyInfo.cs换行错误的永久方案
方案一:改用SDK风格项目(推荐)
从.NET Core 3.0开始,WPF支持SDK风格项目,这类项目默认不再生成传统的AssemblyInfo.cs,而是通过项目文件(.csproj)的属性配置程序集信息,从根源避免模板换行问题:
- 新建WPF项目时,直接选择.NET Core/.NET 5+版本的WPF模板(默认即为SDK风格)。
- 若为现有非SDK项目,右键项目→编辑项目文件,替换为SDK风格格式,示例:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net6.0-windows</TargetFramework> <UseWPF>true</UseWPF> <!-- 在这里配置程序集信息,替代原AssemblyInfo内容 --> <AssemblyCompany>你的公司名称</AssemblyCompany> <AssemblyCopyright>Copyright © 2023 你的名称</AssemblyCopyright> </PropertyGroup> </Project>
- 删除原有的
AssemblyInfo.cs文件,后续编译不再出现换行错误。
方案二:修改Visual Studio的WPF项目模板
如果坚持使用传统非SDK项目,可直接修改VS的模板文件永久修复:
- 找到对应VS版本的WPF项目模板路径(以VS2022社区版为例):
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VisualStudio\v17.0\Windows Desktop\Templates\CSharp\WPF\1033
(注意根据VS版本、版本类型(Professional/Enterprise)和安装路径调整对应路径) - 找到模板内的
AssemblyInfo.cs文件(通常在WpfApplication子目录下),用文本编辑器打开。 - 定位到带换行的程序集属性代码:
[assembly: AssemblyCompany(@" ")] [assembly: AssemblyCopyright(@"Copyright © $year$")]
- 将其修改为单行格式:
[assembly: AssemblyCompany("")] [assembly: AssemblyCopyright("Copyright © $year$")]
- 保存文件,之后新建WPF项目时生成的
AssemblyInfo.cs就不会出现换行错误。
方案三:全局禁用自动生成AssemblyInfo
若不想修改模板,也可通过项目配置禁用自动生成的AssemblyInfo,改用自定义文件:
- 右键项目→编辑项目文件,添加以下配置:
<PropertyGroup> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> </PropertyGroup>
- 手动创建一个无换行问题的
AssemblyInfo.cs文件,写入正确的单行属性,后续新项目可直接复用该文件。
内容的提问来源于stack exchange,提问作者Filippo Santarelli
相关产品推荐
相关产品推荐

