読者です 読者をやめる 読者になる 読者になる

Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

Visual Studioのソリューション(プロジェクト)をコピーするプログラムを作りました。

スポンサードリンク

f:id:fa11enprince:20160201022330j:plain
Visual Studioのソリューション(プロジェクト)をコピーするプログラムを作成しました。
Gitでブランチ分けてもいいんだけど、
大幅に試験的にプログラムを変えるときにプロジェクトを作り直してしまう
Git使い慣れてない私なんで、私には必要ですが、
ほかに需要があるかは謎です。
やっていることはプロジェクトを指定した名前で丸々コピーして
プロジェクト名を指定した名前に変えるのと、
ソリューションファイルとプロジェクトファイルの名前を書き換えて
GUIDを書き換えるといったそれだけのものです。
filterについては特に何もしてません。
GUID書き換えなくてよいという情報があったもので……。
また、RootNamespaceはよくわからなかったので指定先の名前で書き換えました。
そうするとソースコードにも影響が及ぶ気が若干しますが……。
十分にテストしていないので、人柱になりたい人はぜひ(^^)/!

中身は結構雑なプログラムでC#で組んでいます。
ソリューションファイルの構造大体わかったけれども
パーサを書くとそれなりに大がかりなので(なんでXMLでないんだよ……)
正規表現で力技で書き換えています。

GitHub

github.com
ライセンス入れておきました(MIT License)。
いつの間にかGitHubがライセンスと.gitignoreを自動で作れるようになってますね。

使い方

意図的にC++とC#だけ対応しています。
VBは滅びてください。
あっ、F#は入れるべきでした。
パスを通すか、使うところと同じディレクトリにおいて
コマンドプロンプトから使います。

> solcp [sol src path] [sol dst path]

例えばdemoというソリューションをdemoCopyでコピーするとこんな感じになります。

[コピー元]
demo
│  demo.sln
└─demo
        demo.vcxproj
        demo.vcxproj.filters
        Source.cpp
[コピー先]
demoCopy
│  demoCopy.sln
└─demoCopy
        demoCopy.vcxproj
        demoCopy.vcxproj.filters
        Source.cpp

参考にした情報(結構パクりました)

stackoverflow.com

C#楽ちんでいいです(*´ω`)