2011-11-12 7 views
0

私はHudson CIツールを使用して自動ビルドを行い、ビルド番号の環境変数${env.BUILD_NUMBER}を作成します。私は自分のサイトの多くのページでこの数字をクエリ文字列としてCSSのリンクに書きたいと思っています。ビルド時にこの環境変数を取得し、コード内で置き換える最良の方法は何ですか?ビルド時に多数のASP.NETサイトに環境変数を設定

プロジェクトは、ASP.NET C#Webサイトです。結果の

例:

私はコードコミット:

<link href="/Content/all.min.css?v=15" rel="stylesheet" type="text/css" />

<link href="/Content/all.min.css" rel="stylesheet" type="text/css" />

およびビルド後のビルド番号が15であれば、私は、これが残っています

答えて

0

Application_Start(Global.asax.cs)中に環境変数を読み取ります。 私はそれを静的変数に格納します。 あなたはMVCを使用している場合、私は、その後のような拡張メソッドを作成します:あなたは、簡単にバージョンクエリ文字列を追加するために、あなたのビュー内で使用することができます

public static string VersionedContent(this UrlHelper urlHelper, string contentPath) 
    { 
     return string.Format("{0}?v={1}", urlHelper.Content(contentPath), YourStaticClassWithVersionInfo.Version); 
    } 

あなたのビューは次のようになります:

<link href="@Url.VersionedContent("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 

あなたはより詳細な情報が必要なら、私に教えてください。

+0

さて、私はこれが1年以上経過していることを知っていますが、この問題は説明され、最終的に戻ってきました。実行時に環境変数を取得する必要がないため、これは私のためには機能しません。ビルド時に必要です。で、私はいくつかのプレースホルダーを環境変数で置き換えるためにMSBuildが必要です。アプリケーションの実行時には変数にアクセスしません。 – xdumaine

+0

@roviuser最近私は、asp.netよりもnode.jsの方がはるかに多く、Visual StudioのないmacOsで作業しています。とにかく、この質問を見ると、あなたは正しい道を進むはずです。 http://stackoverflow.com/questions/4450231/can-i-make-a-constant-from-a-compile-time-env-variable-in-csharp – santiagoIT

関連する問題