2016-08-02 50 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