2

私はこのチームにコンパイル後にターゲットセットアップを構築させます

  <Target Name="AfterCompile">
    <Copy SourceFiles="$(SolutionRoot)\Development_VS2008\MyCompanyName.SharePoint.12" DestinationFolder="c:\testing"></Copy>
  </Target>

フォルダー構造をソースから宛先にコピーしたい...

驚くべきことに、私はこのエラーを受け取ります

宛先がファイルではなくフォルダーであるため、ファイル "C:\ TFS \ NightlyBuild \ Sources \ Development_VS2008 \ MyCompanyName.SharePoint.12 \"を宛先ファイル"c:\tests\"にコピーできませんでした。ソースファイルをフォルダーにコピーするには、DestinationFilesの代わりにDestinationFolderパラメーターを使用することを検討してください。

ご覧のとおり、私は実際にdestinationfolderパラメーターを使用していますが、私が間違っていることを誰かが知っていますか?

4

6 に答える 6

5

SourceFilesコピーしたいファイルではなくディレクトリだからだと思います。これを試して:

<Target Name="AfterCompile">
    <ItemGroup>
        <FilesToCopy Include="$(SolutionRoot)\Development_VS2008\MyCompanyName.SharePoint.12\**\*.*"/>
    </ItemGroup>

    <Copy SourceFiles="@(FilesToCopy)" DestinationFolder="c:\testing\%(RecursiveDir)"/>
</Target>
于 2009-01-16T10:07:17.753 に答える
1

次のようなものが必要です。

<CreateItem Include="someFolder\**\*.*">

    <Output ItemName="files" TaskParameter="Include" />

</CreateItem>

<Copy SourceFiles="@(files)" DestinationFiles="@(files->'C:\folder\%(relativedir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />

または、最も簡単な方法を見つけました (何を含める/除外するかについてもう少し厳密にしたい場合) は、私が書いたいくつかのカスタム MSBuild タスクを使用することです: http://www.aaron-powell.com/blog .aspx?cat=AaronPowell.MSBuild.Tasks

ソース ディレクトリ、宛先方向 (ネットワーク共有のサポートが提供されます)、および除外するファイル名/拡張子を指定します。

これは主に、Team Build が実行時に (特に Web アプリで) 混乱を招き、標準の MSBuild コピー タスクを実際に使用できないためです。

于 2009-01-16T11:05:44.360 に答える
0

ビルド後のxcopyコマンドで多くの問題が発生しています。そして、xcopyコマンドを避けることにしました。

これで、(コピーする)ファイルをプロジェクトに含め、ローカルプロパティのコピーを「新しい場合はコピー」とターゲットディレクトリに設定します(ディレクトリ構造はプロジェクトで同じである必要があります)

それは大いに役立ちます。
多分それはあなたの状況にも合うでしょう。

于 2009-01-16T10:27:00.613 に答える
0

コピー タスクはディレクトリのコピーを明らかにサポートしていません (「コピー」に基づいているため)。また、ソースのファイル名が長い (256 文字を超える) ために xcopy が失敗することがあります。

私はこれを行いました(robocopyを使用): <Exec WorkingDirectory="$(MSBuildProjectDirectory)" Command='robocopy $(MSBuildProjectDirectory)\Main $(DropLocation) /S /COPY:DATS /NP /NFL /NDL /v' ContinueOnError="true" />

于 2011-10-25T11:15:04.243 に答える
0

まったく同じメッセージがありました:

エラー 103 ファイル "obj\Release\xxxx.dll" を宛先ファイル "bin\Release\xxxx.dll" にコピーできませんでした。宛先がファイルではなくフォルダーであるためです。ソース ファイルをフォルダーにコピーするには、DestinationFiles の代わりに DestinationFolder パラメーターを使用することを検討してください。xxxx

たまたま (理由はわかりません)、リリース フォルダーに同じ名前のアセンブリ (拡張子を含む) を持つ別のフォルダーがあったため、Visual Studio はそこにアセンブリを作成できませんでした。これはプロジェクトまたはソリューションの構成ではないため、フォルダーを削除しただけで (作成方法がわからない)、機能しました。

于 2013-08-06T16:52:59.227 に答える