トップ回答者
ビルドでエラー時の回復対処方法

質問
-
多分下手にプロジェクトの名前など変更したためか、ビルドしたとき、”デザイナーがおかしくなっていて、情報が壊れる恐れがある”ようなメッセージが出て続行できなくなりました。
その後、コピーしたファイルを削除してオリジナルのファイルだけにしましたが、form1のデザイナーは復活しましたがform1のコードはプロジェクトエクスプローラに表示されなくなりました。別途windowsのexploreでみるとform1.csは残っています。
なにかプロジェクトの構成ファイルのようなものが不正になったためかと思いますが、まったくわかりません。エラー時に出た画面(コピーがなくてすみません)の案内では対処がわからなく、検索で見た対処の続行ボタンもなく対処できませんでした。
7年くらい前にこちらでプログラムの変更手順をお訪ねした際、フォルダをまるごとコピーすることを提案頂きましたが、十分理解していなかったので、誤った操作をしたためではないかと思います。7年ぶりのトライです。
エクスプローラーで見たフォルダ/ファイル構成
vs2019--nn--browser--HLWeb-+-/.vs, HLWeb, HLWeb.sln/
HLWeb ---/obj,propathies,App.config,Form1.cs(ソースで中身は正常),Form1.Desingner, Form1.resx, HLWeb.csproj, Program.cs
HLWebはフォルダです。--の右側はその中身です。コードのあるForm1.csがプロジェクトから外れてしまったと思われます。
不思議なことに、ビルドは正常です。大して大きくもなくはじめからやり直しても良いのですが、この際回復の対処方法を知りたいと思います。
私のプロジェクトも大詰めに来ていたところで残念です。良い解決方法のご教示を願っております。
回答
-
sige2さん、こんにちは。フォーラムオペレーターのHarukaです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
私の知る限り、回避策は既存のソリューションを別のパスに移動するための1つの方法であり、ファイル名を変更する必要はありません。
ご説明から、既存のフォームファイルをプロジェクトに直接コピーしますか。
slnファイルは、Microsoft Visual Studioでプロジェクトを整理するために使用される構造ファイルです。
プロジェクト環境とプロジェクト状態に関するテキストベースの情報が含まれています。
csprojファイルはそれに似ており、実行中の構成とファイル間の参照関係が含まれています。
ファイルエクスプローラーでファイルを直接変更または移動すると、csprojはそれらを見つけられないため、未知のエラーが発生します。
そのため、次の手順に従って実行することをお勧めします。
1.ファイルエクスプローラーを開き、Form1.csおよびForm1.designer.csをコピーし、別の名前(たとえば、Form2.cs、Form2.designer.cs)を使用します。
2. Visual StudioでHLWeb.slnを開き、ビューをslnファイルに切り替えて、[すべてのファイルを表示]をクリックします。
3. Form2.csを右クリックし、「プロジェクトに含める」をクリックすると、slnおよびcsprojファイルが自動的に更新されます。
4.コピーされたファイルのすべての「Form1」を「Form2」に変更して、クラス名などのコンフリクトを回避します。
まとめると、ソリューションエクスプローラーを使用してプロジェクトを管理することをお勧めします。
これにより、カスタムプロジェクト構造を作成するときに不要なエラーを減らすことができます。
どうぞよろしくお願いいたします。MSDN/ TechNet Community Support Haruka
~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~- 回答としてマーク sige2 2019年10月26日 9:20
すべての返信
-
sige2さん、こんにちは。フォーラムオペレーターのHarukaです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
ご質問の件につきまして、その後のご状況いかがでしょうか。
追加でご確認いただいたことなどあれば、追記いただくことで回答がつきやすくなります。
どうぞよろしくお願いいたします。MSDN/ TechNet Community Support Haruka
~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~ -
sige2さん、こんにちは。フォーラムオペレーターのHarukaです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
私の知る限り、回避策は既存のソリューションを別のパスに移動するための1つの方法であり、ファイル名を変更する必要はありません。
ご説明から、既存のフォームファイルをプロジェクトに直接コピーしますか。
slnファイルは、Microsoft Visual Studioでプロジェクトを整理するために使用される構造ファイルです。
プロジェクト環境とプロジェクト状態に関するテキストベースの情報が含まれています。
csprojファイルはそれに似ており、実行中の構成とファイル間の参照関係が含まれています。
ファイルエクスプローラーでファイルを直接変更または移動すると、csprojはそれらを見つけられないため、未知のエラーが発生します。
そのため、次の手順に従って実行することをお勧めします。
1.ファイルエクスプローラーを開き、Form1.csおよびForm1.designer.csをコピーし、別の名前(たとえば、Form2.cs、Form2.designer.cs)を使用します。
2. Visual StudioでHLWeb.slnを開き、ビューをslnファイルに切り替えて、[すべてのファイルを表示]をクリックします。
3. Form2.csを右クリックし、「プロジェクトに含める」をクリックすると、slnおよびcsprojファイルが自動的に更新されます。
4.コピーされたファイルのすべての「Form1」を「Form2」に変更して、クラス名などのコンフリクトを回避します。
まとめると、ソリューションエクスプローラーを使用してプロジェクトを管理することをお勧めします。
これにより、カスタムプロジェクト構造を作成するときに不要なエラーを減らすことができます。
どうぞよろしくお願いいたします。MSDN/ TechNet Community Support Haruka
~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~- 回答としてマーク sige2 2019年10月26日 9:20