我想知道是否有办法在Visual Studio 2008 IDE中查看最后完成的构建的程序集版本号。我不希望看到程序集信息对话框或AssemblyInfo文件中的1.0。*,而是完整版本(将*替换为实数)。我也不想提出项目可执行文件或程序集的属性。
答案 0 :(得分:2)
好的,我想现在我的问题变得更好了,你想看看内部版本号是什么,而不是实际构建......就像在,Visual Studio如何知道当它的设置为*时下一个数字是什么?
如果您使用自动构建数字,请假设您有1.0。*并且VS构建一个值,例如1.0.3245.1234
3245是自2000年1月1日以来的日子
1234是午夜以来的秒数除以2。
回答你的编辑:
我唯一可以想到的是在不执行程序集中的某些代码或检查文件属性的情况下获取构建号,就是进行某种构建后事件,检查程序集的属性并弹出一个显示它的消息框,或者更好的是,使用内部版本号将注释写入AssemblyInfo.cs文件的顶部
答案 1 :(得分:1)
Assembly.GetExecutingAssembly().FullName.
来自MSDN:
using System;
using System.Reflection;
class Example
{
static void Main()
{
Console.WriteLine("The FullName property (also called the display name) of...");
Console.WriteLine("...the currently executing assembly:");
Console.WriteLine(Assembly.GetExecutingAssembly().FullName);
Console.WriteLine("...the assembly that contains the Int32 type:");
Console.WriteLine(typeof(int).Assembly.FullName);
}
}
/* This example produces output similar to the following:
The FullName property (also called the display name) of...
...the currently executing assembly:
SilverlightApplication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
...the assembly that contains the Int32 type:
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
*/
答案 2 :(得分:0)
简化方法,
Application.ProductName;
Application.ProductVersion;
答案 3 :(得分:0)
属性中的“程序集信息”框指向项目中的文件,通常称为AssemblyInfo.cs(在“属性”文件夹中)。这就是设置版本的实际代码所在的位置,并且浏览该文件可能比通过设置更容易。
修改强>:
现在我明白了这个问题。这是一个生成的数字,不会以我所知的任何方式通过Visual Studio公开。
编辑2 :
如果您愿意依赖PowerShell,则可以创建一个构建后事件或External Tools menu item来调用该程序集上的.NET方法以获取其版本...
答案 4 :(得分:0)
我建议对您的构建过程进行一些小改动,因此每次编译时,版本号都会显示在“输出”区域中。它实际上非常简单:
右键单击您的项目,然后选择“卸载项目”。你的所有代码都“消失”,但没有必要恐慌。
再次右键单击它,然后选择“编辑...”。
这会将proj文件打开为xml,现在您可以在<ProjectExtensions>
标记内添加此代码段。
<Target Name="AfterBuild">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="MyAssemblyIdentities"/>
</GetAssemblyIdentity>
<Message Text="AssemblyVersion: %(MyAssemblyIdentities.Version)"
Importance="high" />
</Target>
保存并关闭文件。右键单击并选择“重新加载项目”。这将像以前一样恢复项目。
编译,您会在“输出”窗口中注意到一行新文本:
AssemblyVersion = 1.0.3518.36887
就是这样。
这是DnrTV的这一集,Sayed Hashimi on MS Build,这让我开始关注MSBuild以及你可以做的所有很酷的事情。强烈推荐。 :)