0

我正在 Visual Studio 2012 中的 ASP.NET Web 窗体(对我来说是双重耻辱)项目中开发网站解决方案(不是我感到羞耻的 Web 应用程序)。我想在每个版本上都有一个自动增量版本,这样我就可以在我的代码中检索它并用于静态文件版本控制(主要是 css 和 js)以避免它。

我想要获得的是像 /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 应用程序上。提前致谢

4

1 回答 1

1

好的..经过一些深入的研究和一些令人头疼的事情,因为文档(官方)通常非常肤浅,我找到了一种方法。因此,如果您有一个 WEB SITE 项目并想为您的网站添加半自动版本控制(也许检索此版本以用于您想要的任何用途,例如取消附加的静态文件缓存?v=version)这里是如何做到的:

  • 在您的项目中创建一个不在 App_Code 文件夹内的文件,并将其命名为 AssemblyInfo.vb(我在 VB 中编码。如果您需要 C#,请在 Google 中搜索“Telerik Code Converter”)。如果需要,您可以将文件放在 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 文件的路径。注意:如果你不想像我一样浪费时间……这条路必须是绝对的,不能是相对的。因此,当您在另一台服务器上移动生产站点时,请记住更改它。

于 2013-04-07T19:37:03.840 回答