kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

VisualStudioプロジェクトをコピー

Visual StudioでネイティブC++プロジェクトを作って人様に渡す場合、Releaseフォルダとか、Debugフォルダとか渡したくありませんね(vss関係のファイルもだけど)。今日2時間くらい頭をひねっていたのですが、どうにもいい手段が思い浮かびませんでした。結局こうしました。

PS>copy-item -path コピー元 -destination コピー先 -include *.* -recurse
PS>remove-item -include release,debug -recurse

コピーしてから削除orz。ちなみに挑戦していたのはこんなスクリプト。

get-childitem -path コピー元 -include *.* -exclude .pdb,.obj,.dll,.map,.htm,.exp  -recurse |
foreach-object{
  $dest = コピー先 + $_.directory
  // これではc;\dev\folder\c:\dev\folder\source1.cpp みたいになってNG
  $source =  $_.directory + "\" + $_.Name
  // これはパスが不正と言われる
  $source =  $_
  //  これでは hoge.cpp 部分しか出てこない
  $source =  $_.Name

  copy-item $source -destination $dest -recurse
}

ちゃんと型変換してやればいいのでしょうが、どうもこの辺の規則性がよくわかりません。