3

私はslowcheetahで何かが欠けているに違いないと思います。新しいasp.netmvc3アプリケーションを作成しました。デフォルト値でweb.configに1つのappsettingを追加しました。次に、デバッグ構成ファイルとリリース構成ファイルのそれぞれに1つの変換を追加しました。この値を読み込むビューも作成しました。変換をプレビューすると、変換は正常に機能します。私の理解では、プロジェクトをリリースモードで実行すると、プロジェクトはリリーストランスフォーメーションからアプリ設定を読み込み、デバッグモードでプロジェクトを実行すると、デバッグ構成からアプリ設定を読み込みます。

これがweb.configの関連部分です

<appSettings>      
    <add key="cheetah_val" value="default_val"/>
  </appSettings>

これがweb.debug.configです

<?xml version="1.0"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">  

  <appSettings>
    <add key="cheetah_val" value="debug_val" xdt:Transform="Replace" xdt:Locator="Match(key)"/>

  </appSettings>
  <system.web>

  </system.web>
</configuration>

これがweb.release.configです

<?xml version="1.0"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <appSettings>
    <add key="cheetah_val" value="release_val" xdt:Transform="Replace" xdt:Locator="Match(key)"/>

  </appSettings>
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />

  </system.web>
</configuration>

HomeController.cs

public class HomeController : Controller
    {
        public ActionResult Index()
        {    

            ViewBag.CheetahMessage = System.Configuration.ConfigurationManager.AppSettings["cheetah_val"];   
            return View();
        }          
    }

そしてindex.cshtml

@{
    ViewBag.Title = "Home Page";
}

<h2>@ViewBag.CheetahMessage</h2>

出力は、リリースモードではrelease_val、デバッグモードではdebug_valになると思います。私は何が間違っているのですか?それとも私は何か重要なものを見逃していますか?Webサイトの場合、F5機能は機能しませんか?Webサイトの場合、変換を機能させるために実際にこれを公開する必要がありますか?

4

2 に答える 2

3

私の理解では、プロジェクトをリリースモードで実行すると、プロジェクトはリリーストランスフォーメーションからアプリ設定を読み込み、デバッグモードでプロジェクトを実行すると、デバッグ構成からアプリ設定を読み込みます。

それは、私が最初にslowcheetahについて読んでダウンロードしたときの私の仮定でもありました。

Webサイトの場合、変換を機能させるために実際にこれを公開する必要がありますか?

AFAIK、変換を機能させるには、WebサイトとWebアプリケーションプロジェクトの両方を公開する必要があります。Slowcheetahはこれを実行しません。それを実行するのは、VS公開ツールです。Slowcheetahでは、変換をプレビューすることしかできません。

私もこれについて間違っている場合は、IIS Expressでローカルにデバッグするときに変換を実行できるようにしたいので、声を上げてください。

考えられる解決策の1つは、公開ディレクトリから提供するようにマシン上に実際のIISを設定することです。次に、変換が動作にどのように影響するかを確認したい場合は、WebをIISに公開し、それを使用してサイトを表示できます。ただし、これでデバッガーをアタッチできるとは思いません。

于 2012-08-05T11:02:00.530 に答える
-1

私の理解では、SlowCheetahはweb.configではなくApp.Config用です

web.configに対して同じことを行うことは、すでにVS2010の標準部分であるはずです。

これについて話しているスコット・ハンゼルマンです(6分20秒を見てください) http://www.hanselman.com/blog/WebDeploymentMadeAwesomeIfYoureUsingXCopyYoureDoingItWrong.aspx

そしてこれは彼がSlowCheetahについて書いている http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx

app.configにSlowCheetahを使用しましたが、完全に機能します。

于 2012-08-07T10:16:07.950 に答える