【问题标题】:Version information missing from .NET assembly (Compact Framework 3.5/VS2008).NET 程序集中缺少版本信息(Compact Framework 3.5/VS2008)
【发布时间】:2010-12-31 04:17:03
【问题描述】:

我正在使用 VS2008 和 .NET compact framework 3.5 构建一个面向 Windows Mobile 6 专业版的可执行文件,但是每当我编译该项目时,我在 AssemblyInfo.cs 文件中指定的所有内容都会被忽略。

我在其他项目中做过很多次,它可以正常工作,但由于某种原因,我无法显示 AssemblyTitle/AssemblyProduct/AssemblyVersion 属性等(我正在尝试使用查看它们Windows 资源管理器,我可以在我已构建的任何其他程序集的详细信息选项卡中查看这些属性 - 甚至是同一解决方案中的其他项目。

有什么建议吗?

【问题讨论】:

  • 更多信息:刚刚发现如果我创建一个针对 windows mobile 的新智能设备 exe 项目,那么 assemblyinfo 将被忽略,但如果我创建一个针对 Windows CE 的相同项目,则包含 assemblyinfo!仍然不知道为什么!只是似乎 Windows Mobile exe 不能包含程序集信息!

标签: compact-framework assemblyinfo assemblyversionattribute


【解决方案1】:

该信息正在查看本机版本信息,该信息在桌面上是使用 AssemblyFileVersionAttribute 设置的。 CF 不支持 AssemblyFileVersionAttribute,因此开箱即用设置版本信息的唯一方法是命令行编译。有a workaround in this blog

【讨论】:

  • 谢谢,但是对于同一解决方案中另一个项目中的另一个紧凑框架程序集,所有信息都已正确设置。我在以前的项目中也使用了同样的技术,没有问题。似乎只是这个项目有问题。这两者之间的唯一区别是一个是exe,另一个是dll(尽管其他exe项目已正确包含此信息)。
  • re:Martin 的,在我的情况下,它似乎工作得非常好,并且对于我的项目中的 DLL 而言正如预期的那样,但它对于 EXE 项目根本不起作用。我正在使用 VS2008,VB.NET 也针对 CFv3.5。
【解决方案2】:

我知道这是旧的,但这里发布了一个更简单的解决方案:
Version number in .NET Compact Framework application

你必须使用反射。 System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Major System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Minor System.Reflection.Assembly.GetExecutingAssembly().GetName().Version。构建 System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Revision

【讨论】:

    【解决方案3】:

    在标签 PlatformFamilyName;而不是PocketPC,改为添加WindowsCE 在csproj中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多