解决从旧格式的 csproj 迁移到新格式的 csproj 格式 AssemblyInfo 文件值重复问题

栏目: 编程语言 · 发布时间: 5年前

内容简介:现在很多小伙伴开始使用了 dotnet core 项目,但是如果是从以前的 dotnet framework 的项目修改为 dotnet core 项目格式,会发现编译的时候出现了 AssemblyInfo 里面的很多值重复如果直接修改格式,没有删除 AssemblyInfo 文件,很多时候会发现编译的时候出现下面提示遇到这个问题可以从两个方面解决

现在很多小伙伴开始使用了 dotnet core 项目,但是如果是从以前的 dotnet framework 的项目修改为 dotnet core 项目格式,会发现编译的时候出现了 AssemblyInfo 里面的很多值重复

如果直接修改格式,没有删除 AssemblyInfo 文件,很多时候会发现编译的时候出现下面提示

Error CS0579: “System.Reflection.AssemblyCompanyAttribute”特性重复 
    Error CS0579: “System.Reflection.AssemblyConfigurationAttribute”特性重复 
    Error CS0579: “System.Reflection.AssemblyFileVersionAttribute”特性重复 
    Error CS0579: “System.Reflection.AssemblyProductAttribute”特性重复 
    Error CS0579: “System.Reflection.AssemblyTitleAttribute”特性重复 
    Error CS0579: “System.Reflection.AssemblyVersionAttribute”特性重复

遇到这个问题可以从两个方面解决

删除重复的特性

打开 AssemblyInfo 文件,几乎可以删除里面的所有代码,除了 ComVisible 和 ThemeInfo 和其他自己添加的代码,其他都可以删除

using System.Runtime.InteropServices;
using System.Windows;


// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]

//若要开始生成可本地化的应用程序,请设置
//.csproj 文件中的 <UICulture>CultureYouAreCodingWith</UICulture>
//例如,如果您在源文件中使用的是美国英语,
//使用的是美国英语,请将 <UICulture> 设置为 en-US。  然后取消
//对以下 NeutralResourceLanguage 特性的注释。  更新
//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。

//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]


[assembly: ThemeInfo(
    ResourceDictionaryLocation.None, //主题特定资源词典所处位置
                                     //(未在页面中找到资源时使用,
                                     //或应用程序资源字典中找到时使用)
    ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置
                                              //(未在页面中找到资源时使用,
                                              //、应用程序或任何主题专用资源字典中找到时使用)
)]

不自动创建 AssemblyInfo 特性

在新的 dotnet core 格式,默认会自动创建 AssemblyInfo 特性,编译不通过的原因是存在 AssemblyInfo 文件和使用 dotnet core 项目格式创建的 AssemblyInfo 特性除了删除 AssemblyInfo 文件还可以让 dotnet core 项目格式不要创建

通过在 csproj 添加下面代码可以不创建

<GenerateAssemblyInfo>false</GenerateAssemblyInfo>

上面这个代码需要放在 PropertyGroup 里,请看下面

<PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>net472</TargetFramework>
        <UseWPF>true</UseWPF>
        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    </PropertyGroup>

这里有一个好用的迁移工具 CsprojToVs2017 Tooling for converting pre 2017 project to the new Visual Studio 2017 format. 可以将之前的 csporj 格式修改为新的 csproj 格式

从以前的项目格式迁移到 VS2017 新项目格式


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ODPS权威指南

ODPS权威指南

李妹芳 / 人民邮电出版社 / 2014-12 / 69元

ODPS(Open Data Processing Service)是阿里巴巴自主研发的海量数据处理和分析的服务平台,主要应用于数据分析、海量数据统计、数据挖掘、机器学习和商业智能等领域。目前,ODPS不仅在阿里内部得到广泛应用,享有很好的口碑,正逐步走向第三方开放市场。 本书是学习和掌握ODPS的权威指南,作者来自阿里ODPS团队。全书共13章,主要内容包括:ODPS入门、整体架构、数据通......一起来看看 《ODPS权威指南》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具