gpt4 book ai didi

c# - AssemblyVersion 和 AssemblyFileVersion 在一个单独的文件中

转载 作者:太空宇宙 更新时间:2023-11-03 18:31:09 28 4
gpt4 key购买 nike

我们在单独的属性文件中有 AssemblyVersionAssemblyFileVersion 属性。这是因为它们在所有项目之间“链接”并由构建服务器更新。我们不想在每次构建或发布后都手动更新版本。

AssemblyInfo.cs:

[assembly: AssemblyTitle("MyProductTitle")]
[assembly: AssemblyCulture("")]
[assembly: Guid("579eb194-08f1-44fc-9422-21aaf6cb2963")]

AssemblyVersionInfo.cs:

[assembly: AssemblyFileVersion("0.0.14056.19")]
[assembly: AssemblyVersion("0.0.0.0")]

问题是我们的构建服务器针对每个项目发出以下警告:

CA1016 : Microsoft.Design : Add an AssemblyVersion attribute to 'MyProduct.dll'.

在本地构建项目时,bin 中的实际 DLL 文件应用了所有版本号(文件属性对话框):

File properties

在 Visual Studio 中查看项目属性时,在程序集信息中未检测到版本信息:

VS Project properties

我的猜测是,这是由于 AssemblyVersionAssemblyFileVersion 不在 AssemblyInfo.cs 中。

有什么方法可以“包含”自定义 AssemblyVersionInfo.cs 文件吗?

最佳答案

不止一件事在这里出错:

  • 对话框非常空,因为它严格查看 AssemblyInfo.cs 文件的属性。如果您输入版本号,会将它们写入该文件。使用单独的文件不是一个好主意。

  • Windows“详细信息”属性表与 .NET 无关,它仅显示文件中非托管 版本资源的内容。这仅与 C# 源代码中的属性间接相关,C# 编译器会根据属性自动生成非托管版本资源。遗憾的是,这个对话框中没有显示 super 重要的 [AssemblyVersion] 编号,XP 是最后一个仍然可以显示它的 Windows 版本。

  • 您可能获得了 CA1016,因为您将版本号保留为 0。

Windows 不显示 [AssemblyVersion] 不是跳过该属性的好理由。如果在属性表中看到它对您很重要,那么只需使 [AssemblyFileVersion] 与 [AssemblyVersion] 相同即可。请记住它的用途,如果您更改 [AssemblyVersion],则需要重新编译引用该程序集的所有项目。

Microsoft 的 Windows 和 DevDiv 组之间有过不愉快的历史,我不想深入了解它的细节。我们只是说 Windows 非常 不适应 .NET。我们有责任解决这个问题。

关于c# - AssemblyVersion 和 AssemblyFileVersion 在一个单独的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22247624/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com