5

我用这个修改了我的 assemblyinfo.cs:

[assembly: AssemblyVersion("1.0.*")]

并在 _layout.cshtml 上放了这个,这样我就可以识别出我正在测试哪个版本:

 @System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()

它总是打印0.0.0.0

当我去 bin 文件夹并检查 dll 属性时,版本说 1.0.343.2323 所以我不明白吗?

4

2 回答 2

12

显示的程序集名称是一些runtime assembly loaded by IISEntryAssembly如果您的应用程序的入口点位于您更新了 AssemblyInfo 的程序集中,则使用该名称 -

Assembly.GetEntryAssembly().GetName().Version.ToString();

如果它与调用程序集不同,您可以这样做 -

Assembly.GetAssembly(typeof(YourAssembly.AnyClass)).GetName().Version.ToString();
于 2013-04-13T21:06:51.297 回答
5

看起来正在执行的程序集不是您编译的程序集,而是由 IIS 创建的动态程序集。

尝试使用

typeof(Your_Type_From_NonWeb_Assembly).Assembly.GetName().Version.ToString()
于 2013-04-13T21:05:48.353 回答