2009-04-17 9 views
9

Visual Studio 2003から2008にプロジェクトをアップグレードしていて、XXX.Designer.csファイルを自動的に生成し、対応するXXX.cs元のファイルを更新したいとします。VS2003クラスをDesigner.csファイルの一部に自動的に変換する方法は?

自動的に行う方法はありますか?

更新日:私はWinFormsを参照しています。もちろん、私は古いスタイルの作品を知っているが、私は手でそれを行うことなく新しいスタイルに行く方法を探しています。

+0

これは、ASP.NETプロジェクトかWindowsフォームプロジェクトかをあなたにはわかりません。どちらを挙げてください。 –

+2

答えはhttp://stackoverflow.com/questions/669540/split-old-net-code-into-designer-partial-class – reinierpost

答えて

0

わかりませんが、私は推測します。

これはVS2003のASP.NETプロジェクトですか? .Designer.csファイルが入っていますか?アップグレードを行ったが、今すぐ.Designer.csファイルがないことがわかりますか?

もしそうなら、誤ってWebアプリケーションプロジェクトをWebサイト "プロジェクト"に変更した可能性があります。この種の「プロジェクト」はVS2005で導入されたので、まだ見ていないでしょう。これらは実際のプロジェクトではなく(.csprojファイルなし)、他にも多くの違いがあります。

プロジェクトで.Designer.csファイルを使用していなかった場合は、なぜ今それらを使用したいのですか?

一般に、デザイナーファイルを作成する方法は、デザイナーでファイルを開き、デザイナーが何をやっているかを完了するまで待つ(画面の更新など)。ファイルを保存します。デザイナーに物事を再評価させるためには、オリジナルを「触れ」なければならないかもしれません。

+2

VS2003には.net 1.1がなかったので.designer.csファイルがありませんでした。部分クラスをサポートします。つまり、コードビハインド内の領域内にコントロール宣言を隠すだけです。 FerranBは、これらの宣言をデザイナーファイルに移動する自動化された方法を求めています。 –

+0

私が忘れてしまったVS2003を使用して以来、ずっと長いことでした!その場合、デザイナを開いて保存すると、手動で実行されます。マクロやVSの拡張性を利用して、自動化する方法があるかもしれません。おそらくマクロがそれを行います。 –

+0

いいえ、VS2005またはVS2008は、開いたり保存するだけで自動的に.designerファイルに移動しません。 –

1

オリジナルのクラスは、Visual Studioデザイナーであっても引き続き動作します。 VSがデザイナークラスに入れるコードはデザイナーの "ノイズ"を別のファイルに取り除くことを目的としているため、クラス内の非ビジュアルコードに集中することができます。

ウィザードを使用してプロジェクトをVS2008に移行すると、VSでフォームを開き、前と同じようにフォームを編集し続けることができます。新しいフォームを作成すると、Designerのバッカーファイルが作成されます。

1

この問題がありました。

基本的に、デザイナーファイルには、オブジェクト宣言のセット(フォーム上のオブジェクト)とInitializeComponent()呼び出しだけが含まれている必要があります。あなたがコンストラクタ上にある可能性のある派手な仕事をしたことがあるならば。

MyForm.Designer.csというファイルを作成し、プロジェクトに追加するだけです。 VS2008は自動的にMyForm.csの下に配置します。そこから、部分クラス見出しと名前空間を作成し、すべての宣言とInitializecomponentの呼び出しをデザイナーファイルにコピーすると、それが動作します。

しかし、もし人々がinitializecomponentを編集し、デフォルトのコンストラクタも編集すると、VS2005と2008はこれらのファイルを自動的にアップグレードすることができませんでした。私はプロジェクトの観点から、あなたの作業コードが分離からどのような利益を得ると思いますか?

3

これを行うマクロが浮いています。私はそれを使用して、それは素晴らしい動作します。まずNathan Jones Blogを見てください。多くの運がない場合は、マクロソースのzipをダウンロードしてください(投稿しました)VSCONVERT - PasteBin

+0

リンクはfileFactoryで期限切れです。 – Matthieu

+0

OK、コードソースをpastebinに変更しました。私は2006年、2008年の時間枠からこのマクロを使用していません。 – ja72

関連する問題