2016-08-02 65 views
0

我目前有一个VersionInfo.cs文件,其中包含以下内容。c#通过环境变量赋值版本号

using System.Reflection; 
using System.Runtime.CompilerServices; 
using System.Runtime.InteropServices; 

//Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Version 
//  Revision 
// 
//You can specify all the values or you can defaul the Revision and Build Numbers 
//by using the '*' as shown below: 
[assembly: AssemblyVersion("1.0.0.0")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

此文件添加为我的解决方案的链接,所有的项目,所以在更新一个版本号,更新它的全部。这工作正常。

但我想知道是否可以从环境变量中检索版本号,然后在VersionInfo.cs文件中使用它?这可以在VersionInfo.cs文件本身完成吗?

我搜索了这样的东西,迄今一无所获。

+0

还有另一个话题。这可能会有所帮助。 http://stackoverflow.com/questions/650/automatically-update-version-number –

回答

0

它似乎不可能在VersionInfo.cs本身内部完成。尽管可以将特殊符号传递给C#编译器(另请参阅MSDN Article),但与C/C++符号不同,它们不能保存值。

然而,用例如另一个简单的C#程序在算法上生成VersionInfo.cs当然是可能的。首先,编写一个程序,修改VersionInfo.cs与从另一个来源获得的信息,可能从Environment.GetEnvironmentVariable方法调用。然后将预生成命令添加到项目的构建中,请参阅MSDN article以了解有关如何执行此操作的详细信息。在预生成事件中,调用您的程序,以便在调用编译器之前更新VersionInfo.cs