由于dotnet核心移回了.csproj格式,有了一个新的自动生成的MyProject.AssemblyInfo.cs,其中包括:
[assembly: AssemblyCompany("MyProject")]
[assembly: AssemblyVersion("1.0.0.0")]
注意,每次构建时都会自动重新生成。
以前,该文件在/obj/目录中找到,现在它似乎只在内存中,因为该文件无法在磁盘上找到,并且单击错误消息不会打开任何文件。
这是错误信息:
因为它们是在那里定义的,所以我不能自己在经典的AssemblyInfo.cs中定义它们。
在哪里/如何定义项目的公司和版本?
这些设置已经移动到.csproj文件中。
默认情况下,它们不会显示,但您可以在Visual Studio 2017的项目属性Package选项卡中发现它们。
保存后,可以在MyProject.csproj中找到这些值
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<Version>1.2.3.4</Version>
<Authors>Author 1</Authors>
<Company>Company XYZ</Company>
<Product>Product 2</Product>
<PackageId>MyApp</PackageId>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<FileVersion>3.0.0.0</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
<Description>Description here</Description>
<Copyright>Copyright</Copyright>
<PackageLicenseUrl>License URL</PackageLicenseUrl>
<PackageProjectUrl>Project URL</PackageProjectUrl>
<PackageIconUrl>Icon URL</PackageIconUrl>
<RepositoryUrl>Repo URL</RepositoryUrl>
<RepositoryType>Repo type</RepositoryType>
<PackageTags>Tags</PackageTags>
<PackageReleaseNotes>Release</PackageReleaseNotes>
</PropertyGroup>
在文件资源管理器属性信息选项卡中,FileVersion显示为“文件版本”,Version显示为“产品版本”
您总是可以添加自己的AssemblyInfo.cs,这对于InternalsVisibleToAttribute、CLSCompliantAttribute和其他不是自动生成的属性非常方便。
将AssemblyInfo.cs添加到项目
在解决方案资源管理器中,右键单击<项目名称> >添加>新建文件夹。
命名文件夹为Properties。
右键单击“属性”文件夹,然后单击添加>新项目....
选择“Class”并将其命名为“AssemblyInfo.cs”。
抑制自动生成的属性
如果您希望将属性移回AssemblyInfo.cs,而不是让它们自动生成,您可以在MSBuild中抑制它们,正如natemcmaster在他的回答中指出的那样。
这些设置已经移动到.csproj文件中。
默认情况下,它们不会显示,但您可以在Visual Studio 2017的项目属性Package选项卡中发现它们。
保存后,可以在MyProject.csproj中找到这些值
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<Version>1.2.3.4</Version>
<Authors>Author 1</Authors>
<Company>Company XYZ</Company>
<Product>Product 2</Product>
<PackageId>MyApp</PackageId>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<FileVersion>3.0.0.0</FileVersion>
<NeutralLanguage>en</NeutralLanguage>
<Description>Description here</Description>
<Copyright>Copyright</Copyright>
<PackageLicenseUrl>License URL</PackageLicenseUrl>
<PackageProjectUrl>Project URL</PackageProjectUrl>
<PackageIconUrl>Icon URL</PackageIconUrl>
<RepositoryUrl>Repo URL</RepositoryUrl>
<RepositoryType>Repo type</RepositoryType>
<PackageTags>Tags</PackageTags>
<PackageReleaseNotes>Release</PackageReleaseNotes>
</PropertyGroup>
在文件资源管理器属性信息选项卡中,FileVersion显示为“文件版本”,Version显示为“产品版本”
谢谢,这对我帮助很大。
在我的案例中,构建Blazor服务器端网站的项目在发布和调试上都是成功的,但发布网站仍然失败,出现了重复属性错误,这让我有点困惑。
解决方案是在.csproj和.pubxml文件中添加<GenerateAssemblyInfo>false</GenerateAssemblyInfo>:
项目路径:< > /属性/ PublishProfiles / < ProfileName > .pubxml:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
...
<!-- Add the line below -->
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
</Project>