2013-04-04 104 views
0

我正在ASP.NET Web Forms(對我來說是雙重恥辱)項目的Visual Studio 2012中處理Web站點解決方案(而不是Web應用程序對我的恥辱) 。 我想在每個版本上都有一個自動增量版本,這樣我就可以在我的代碼中檢索它並用於靜態文件版本控制(主要是css和js),以避免亂用它。將MSBuild版本添加到VS2012中的ASP.NET Web項目

我想獲得什麼像/mydir/mystyle.css?v=buildversionhere鏈接

我找到了一個不錯的代碼來檢索版本:

Dim web As Assembly = Assembly.GetExecutingAssembly() 
Dim webName As AssemblyName = web.GetName() 
Dim myVersion As String = webName.Version.ToString() 

和它的作品,問題是我總是得到0.0.0.0。 我需要知道的是如何設置自動遞增每個網站建設,像在哪裏設置是這樣的:

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

記得我在一個網站項目無法在Web應用程序。 在此先感謝

+0

您是否預編譯部署? - http://msdn.microsoft.com/en-au/library/399f057w(v=vs.85).aspx – Snixtor 2013-04-04 21:52:41

+0

Hallo Snixtor,我還沒有達到部署階段(我很遠),但是我是猜我會 – Manight 2013-04-04 22:11:50

+0

我的懷疑是,除非你預編譯,你不會得到一個版本號。或者至少不是有意義的。 – Snixtor 2013-04-04 23:06:20

回答

1

行..經過一些深入的研究和一些令人頭痛的破碎,因爲文檔(官方)往往很膚淺,我找到了一種方法來做到這一點。 所以,如果你有一個WEB SITE項目,並且希望向你的網站添加半自動版本控制(也許你想要取消這個版本的任何用法,就像取消靜態文件緩存附加?v =版本一樣),這裏是怎麼做的:

  • 在你的項目中的App_Code文件夾並將其命名爲像AssemblyInfo.vb中創建一個文件NOT(我編碼VB。如果你需要C#搜索「Telerik的代碼轉換器」在谷歌)。你可以把文件App_Data文件夾裏面,如果你想
  • 在這個文件中,你不需要創建的任何類,只需指定相關信息您的.DLL文件,插入碼:

Imports System.Reflection 

<Assembly: AssemblyDescription("desc")> 
<Assembly: AssemblyCompany("company")> 
<Assembly: AssemblyCopyright("Copyright © 2013 your name")> 
<Assembly: AssemblyProduct("asdasd")> 
<Assembly: AssemblyVersion("2.0.*")> 

然後你的web.config中(「配置」標籤之間)插入此代碼:

<system.codedom> 
<compilers> 
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
    compilerOptions='"C:\Absolutepath\App_Data\AssemblyInfo.vb"' /> 
</compilers> 
</system.codedom> 

與路徑到AssemblyInfo.vb的文件。 注意:如果你不想像我這樣浪費時間......這條道路必須是絕對的,不能是相對的。因此,當您在另一臺服務器上將您的網站遷移到生產環境時,請記住更改它

相關問題