2013-04-04 10 views
21

私はC:\ Dev \ MyApp \ Mainのソース管理下にあるアプリケーション(TFS 2012もあります)を持っています。間違ったパスに基づくVS 2012起動アプリケーション

私は新しい機能を開発しているので、私はc:\ Dev \ MyApp \ BranchNewFeatureでブランチを開くことにしました。

私はそれがテストする時間だと決めたとき、私はまったく変更を加えなかったようだった。私はF5を押して、私はアプリのベースライン版を参照してください...それを見て、私は非常に興味深い事実に気づいた:私はIIS Expressをチェックすると、アプリケーションの "起動パス"は、古いもの(c:\ Dev \ MyApp \メイン)。

IIS Expressが新しいパスを指すように助けることができる人はいますか? (C:\ Dev \ MyApp \ BranchNewFeature)

+0

Expressを閉じてもう一度やり直してみましたか? – cheesemacfly

+0

@cheesemacflyはい!私はさらにマシン全体を再起動しました... – Leonardo

+1

'C:\ Users \ your_name \ Documents \ IISExpress \ config \ applicationhost.config'で何か変更しましたか? – cheesemacfly

答えて

24

同じ問題が発生しました。これを修正するために、cheesemacflyの提案を使用して、C:\Users\%USERNAME%\Documents\IISExpress\config\applicationhost.configを新しいディレクトリを指すように更新しました。

このソリューションの明らかな欠点は、新しいブランチを頻繁に切り替えることを計画している場合は、これを繰り返し実行する必要があることです。 VS2012のバグのようです...

+16

VS 2013も再現 – EvAlex

+0

これは答えではなく、むしろ回避策です... VSは期待どおりに起動する必要があります... – Leonardo

+2

私はこの問題をVisual Studioのプロジェクトの1つを右クリックし、Webの下でProject Urlのポートを変更して解決しました(同じものでした)。次に、私の 'applicationhost.config'ファイルの名前を' applicationhost_bak.config'に変更し、Visual Studioを再起動しました。 –

17

再起動VSはこの問題を修正するようです。これは単なる代替ソリューションであり、すべてのWindows製品の標準と同じように - 閉鎖して再起動し、うまくいきます。

ここには何が起こったのですか: VS2013を使用してブランチでWebプロジェクトを作成した後、私は同じ問題に直面しました。上記のChris Gillum氏は、VSを再起動している間にapplicationhost.configを開いて、ファイルが正しいパスで自動更新されるようにしました。だから、これは間違いなくVisual Studioのバグのようです。

UPDATE:

私はこの回答を掲載以来、私はこの問題を何度も見てきました。そして私はVSを再起動するための代替手段を見つけました。ここで私は今何をすべきかです:

  1. 右IISExpressのアイコンをクリックして、設定ファイルに(オープンと)リストから
  2. クリックしてサイト名を選択し、「すべて表示アプリケーション」
  3. 検索]をクリックしますため、次のセクションの下に、ワークスペースへの物理パスを修正:

    <sites> 
        <site name="MyWebSite" id="XXX"> 
         <virtualDirectory path="/" physicalPath="FIX_THIS_PATH" /> 
        </site> 
    <sites> 
    

IISExpressは自動的にサイトを更新し、VSを再起動する必要はありません。これが誰かを助けることを望みます。

+2

私の問題は、私は両方の支店を同時に開いていたことです。 MAINで問題を修正して閉じた後、DEVは間違ったコードを実行しました。 DEVプロジェクトでVS2013を簡単に再起動することで問題は解決しました。ありがとう... – ShaneBlake

+1

元の質問が投稿されてからIIS Expressが少し変更されたので、これは良い答えです。 VS 2015では、IIS Expressの設定ファイルは、ソリューションフォルダの.vsフォルダに格納されています。 – trevorc

1

私はプロジェクトをコピーしたのと同様の状況でした。プロジェクトを実行した後、コピーされ編集されたバージョンではなく、元のプロジェクトがブラウザに表示されました。私のソリューションは、設定ファイルからすべての影響部位を除去することでした:

C:\Users\%USERNAME%\Documents\IISExpress\config\applicationhost.config

私はその後、Web]タブをクリックし、Visual Studioでプロジェクトを右クリックPropertiesをクリックしなければならなかった、このタブで、私はポートを変更しましたProject Urlで指定して保存します。 Visual Studioは、プロジェクトをアプリケーションホスト構成ファイルに追加するかどうかを尋ねました。はいをクリックしてプロジェクトを実行すると、突然すべてうまくいきました。

私の特に問題はVisual Studioのバグではなく、構成の不一致です。

2

IISExpress Webプロジェクトを含むVisual Studioソリューションを開くと、applicationHost.config <site>要素の構成が更新されます。別のブランチのソリューションを開くと、<site>の設定がその別のブランチを指すように上書きされる可能性があります。

たとえば、ポート4000でIISExpressを使用するように設定されたWebプロジェクトを含むソリューションの2つのブランチがあるとします。Branch1のソリューションを開くと、applicationHost.configに<site>要素がサイトを登録して更新されますlocalhost:4000は、Branch1のフォルダを指します。ソリューションのデバッグを開始すると、ブラウザはlocalhost:4000を開き、すべて正常に動作します。

Branch2のソリューションを開くと、applicationhost.configが再度変更され、<site>要素が上書きされ、代わりにlocalhost:4000がBranch2を指すようになります。ここで、開いているBranch1ソリューションまたは開いているBranch2ソリューションのいずれかで「デバッグを開始する」とすると、localhost:4000はBranch2を指しているでしょう。これはapplicationHost.configファイルにあります。

この問題を回避するには、2つのブランチを異なるポートを使用するように構成し、Visual Studioで2つの別個のapplicationHost.config <site>要素を各ブランチに1つずつ管理します。新しいブランチを作成するたびに、新しいポート番号を設定することを忘れないでください。

1

私はこの記事を見つけたときも同様の状況で、答えを探していました。私はこれを固定して適用することを考えましたが、再度分岐したりマージする必要があるたびに多くの労力を費やしていました。

もう少し掘り下げましたが、私は簡単な修正を見つけたと思います。 Visual Studio 2013では、プロジェクトのプロパティを開き、Webオプションをクリックすると、「Create Virtual Directory」というボタンが表示されたServersセクションが表示されます。

このボタンをクリックすると、プロジェクトが入っている別のディレクトリを指していることを確認するメッセージが表示され、問題を修正します。 「はい」をクリックすると、あなたのための修正が行われ、今デバッグすると、正しい場所から引き出されます。

2

Visual Studio 2015で同じ問題を検索する場合は、applicationhost.configファイルが$ SolutionDirectory/.vs/configの隠しフォルダに移動しています。

0

VS 2015では、設定ファイルを直接編集する必要はありませんでした。分岐したプロジェクトを開き、プロジェクトの下のプロパティページに行きました。 Webタブに移動し、Servers> Project URLを編集します。

関連する問題