質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.93%

Visual studio 2017 プロジェクト複製

解決済

回答 5

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 10K+

kasu813

score 18

Visual studio 2017で作成したプロジェクトファイル(.csproj)を複製したいのですがなにか方法はありますでしょうか。同じフォルダ内に二つのプロジェクトファイルを置くイメージです。

ソリューションごとに異なるプロジェクトの設定で使用したいためです。

追記
ソリューションにコピーしてリネームしたプロジェクトファイルを追加して、ソリューションエクスプローラからコピー元のプロジェクトファイルを削除しました。
その場合、下記エラーがでてきました。
コピー元を削除しないで、ビルドしないようにするとビルド時に下記エラーは発生しなかったのですが、プロジェクトの依存関係から元のプロジェクトを外すことができない状況です。
(この依存関係は、プロジェクトシステムによって追加されたため、削除することができません。)

エラー CS0246 型または名前空間の名前 'xxxxxxxx' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)。
エラー CS0115 'XXXXXXXXXXX': オーバーライドする適切なメソッドが見つかりませんでした。

ソリューションの中の別のプロジェクトで上記エラーが発生しました。プロジェクト名を変更したプロジェクトを参照してしるプロジェクトです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • SurferOnWww

    2018/12/13 07:33

    物理的に、エクスプローラを使って、コピーしてはいかがですか? それがダメならなぜダメなのかその理由を教えてください。

    キャンセル

  • kasu813

    2018/12/13 07:53

    同じフォルダ内に2つプロジェクトファイルを置きたいのですが、コピーしてリネームするとビルドに失敗してしまいます。用途によって使い分けたいため、2つ使用します。

    キャンセル

  • SurferOnWww

    2018/12/13 08:07

    同じフォルダでなければならない理由が理解できません。中身も色々リネームする必要がありそうですが、その労力>>>>>>別フォルダと思うのですが。

    キャンセル

  • kasu813

    2018/12/13 08:22

    gitで管理しているので一つで管理したいと考えています。

    キャンセル

回答 5

checkベストアンサー

+1

csprojをコピーしたかったんですね。
以下の手順ではどうでしょうか?

①ファイルエクスプローラーでcsprojファイルのコピーを作成する。
②vsでソリューションを開く
③ソリューションエクスプローラーに表示されているコピー元のプロジェクトを右クリックして[プロジェクトのアンロード]を選ぶ
④[ファイル]-[追加]-[既存のプロジェクト]で、コピーされたプロジェクトを選択する。

的外れだったらすみません。

追記
ソリューションエクスプローラーで、ソリューションを右クリックして [プロジェクトの依存関係]を選ぶと依存関係が表示されるので、依存関係がオリジナルとコピーで同じことを確認したほうがいいかもしれません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/13 12:41

    原因がわかりました。参照するプロジェクトを変更する必要があったようです。
    ありがとうございました。

    キャンセル

+1

単にコピーするだけじゃダメでしょうか

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/13 10:20

    プロジェクト名を変更したほうでは大量に下記警告がでてきます。
    重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
    警告 CS1591 公開されている型またはメンバー 'XXXXXXXXXXXXXXXX' の XML コメントがありません。

    キャンセル

  • 2018/12/13 10:29

    え、そのファイルを別プロジェクトにコピーするという話ですか?
    それはなんぼなんでも無理でしょう

    プロジェクトファイルにはそのプロジェクトに固有の情報(ソースファイルの構成やら、そのエラーを見るとクラスの構成も含まれるんでしょう)が入ってますんで、別プロジェクトに持っていっても使えるはずもないです

    キャンセル

  • 2018/12/13 11:04

    申し訳ありません。質問のほうに別途追記いたします。

    キャンセル

+1

適当にコピーして
テキストエディタ等で開いて

<ProjectGuid>{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}</ProjectGuid>


を削って上書き

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/13 10:14

    ご回答いただきありがとうございます。確認してみます。

    キャンセル

  • 2018/12/13 11:12

    エラーを見ましたが依存関係のコピーが必要なようですね

    キャンセル

  • 2018/12/13 12:40

    原因がわかりました。参照するプロジェクトを変更する必要があったようです。
    ありがとうございました。

    キャンセル

+1

前質問の続きと思いますが、前質問ででた回答は、ソリューション内に新しくプロジェクトを作って、項目追加→既存項目で、コピーを作らずに追加する、という操作をしてはどうでしょうという意味かと思います。

質問者様ご認識のとおりgitで重複せずに管理したいときにコピーを作ってはだめだと思います。

また、上の操作をすれは(csprojができるかはあまり考えたことないので存じませんが)必要なものが必要なだけコピーされます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/13 10:13

    エラー CS0246 型または名前空間の名前 'xxxxxxxx' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)。
    エラー CS0115 'XXXXXXXXXXX': オーバーライドする適切なメソッドが見つかりませんでした。

    ソリューションの中の別のプロジェクトで上記エラーが発生しました。プロジェクト名を変更したプロジェクトを参照してしるプロジェクトです。

    キャンセル

  • 2018/12/13 10:18

    ここではなく質問を編集して行った手順とエラーメッセージを追記してください。

    キャンセル

  • 2018/12/13 10:20

    プロジェクト名を変更したほうでは大量に下記警告がでてきます。
    重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
    警告 CS1591 公開されている型またはメンバー 'XXXXXXXXXXXXXXXX' の XML コメントがありません。

    キャンセル

+1

単一のソリューション内に複数のプロジェクトを含める場合は、以下の手順で可能です。

①ファイルエクスプローラー等でプロジェクトのディレクトリを必要な数だけ複製する。
イメージ説明
②複製されたプロジェクトを個別にVSで開きプロジェクト名、アセンブリ名、名前空間、タイトル、製品名、GUIDを変更する。最後に保存してVSを閉じる。
ソリューションファイルが自動で生成されるが必要ないのでファイルエクスプローラー等で削除しておく。
イメージ説明
イメージ説明
イメージ説明
③オリジナルのプロジェクトをVSで開き、[ファイル]-[追加]-[既存のプロジェクト]で、上で複製したプロジェクトのディレクトリに含まれるプロジェクトファイルを指定する。
イメージ説明
④最終的にはこんな感じに
イメージ説明

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/13 11:06

    ご丁寧に画像まで乗せていただき誠にありがとうございます。
    大変参考になりました。
    プロジェクトファイルのみを複製して使用したいのが私のやりたいことになります。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.93%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る