2011-07-31 8 views
0

私のローカルマシンでは、WebアプリケーションをチェックアウトしてMSBuildでコンパイルし、aspnet_compilerで事前にコンパイルして展開しました。これは、プリコンパイルされたウェブサイトはそれにどんなの.svnディレクトリをコピーせずに、ターゲットディレクトリにコピーされますつまり、テストでローカルに正常に動作しますASP.Netコンパイラはどのようにして展開の.svnディレクトリを除外できますか

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>aspnet_compiler.exe -v/-p C:\<Some Dir> -u C:\<Some Target Dir> -f 

:コマンドラインは次のようになります。しかし、CC.Netのビルドをスクリプト化したリモートマシンでは.svnディレクトリがコピーされます。私は、x86 VSツールプロンプトから実行しています両方の場合において

D:\Program Files\Microsoft Visual Studio 10.0\VC>aspnet_compiler.exe -v/-p D:\<Some Dir> -u D:\<Some Target Dir> -f 

:aspnet_compilerために手動でコマンドラインを実行すると、(の.svnフォルダを超えるコピー)と同じ結果になります。なぜ異なる行動があるのか​​?

答えて

0

感謝をすべてのSVNのファイルを削除している。このように使用することができます。私はsvnリポジトリそのものを壊して再チェックし、問題を解決したaspnet_compilerを実行することができたことが判明しました。

1

CCNetを使用している場合は、チェックアウトするのではなくSVNエクスポートに指示することをお勧めします。それは問題を回避するだろう。統合ビルドを実際に行っているときは、ビルドソースにVCSクラッシュを起こさないでください。

svn scmブロックを実行するのではなく、CCNetでsvnコマンドラインクライアントを直接呼び出す必要があります。

これは、私が今やTeamCityを使用している理由です(これはこれで問題ありません)。

TortoiseSVNを使用すると、.svnフォルダが隠しファイルとして作成されますが、CCNetがsvn.exeを呼び出すと、フォルダが隠されることはありません。 aspnet_compilerはそれに敏感だと思います。

0

あなたはすべてのSVNのファイル

<Project 
     xmlns = "http://schemas.microsoft.com/developer/msbuild/2003" 
     name = "AspNetPreCompile" 
     DefaultTargets = "PrecompileWeb"> 
     <Target Name = "PrecompileWeb"> 
       <AspNetCompiler 
         VirtualPath = "DeployTemp" 
         PhysicalPath = "Physical source path" 
         TargetPath = "Physical target path" 
         Force = "true" 
         Debug = "false" 
         Updateable = "true"/> 
     </Target> 
</Project> 

を削除します。このようなコードを公開することができます。また、再帰的応答のため

<Project 
     xmlns = "http://schemas.microsoft.com/developer/msbuild/2003" 
     name = "AspNetPreCompile" 
     DefaultTargets = "build"> 


    <ItemGroup> 
     <FilesToCopy Include="C:\ProjectWorkingDirectories\YourWebsite\Source\**\*.*" Exclude="C:\ProjectWorkingDirectories\YourWebsite\Source\**\.svn\**"/> 
    </ItemGroup> 


    <Target Name = "build"> 
     <CallTarget Targets="PrecompileWeb"/>  
     <CallTarget Targets="CopyFiles"/>  
    </Target> 


    <Target Name = "PrecompileWeb"> 
       <AspNetCompiler 
         VirtualPath = "/Source" 
         PhysicalPath ="C:\ProjectWorkingDirectories\YourWebsite\Source"/>      
     </Target> 


    <Target Name = "CopyFiles">     
     <Copy SourceFiles="@(FilesToCopy)" DestinationFiles="@(FilesToCopy->'C:\TempProjectPublish\YourWebsite\YourWebsite\%(RecursiveDir)\%(Filename)%(Extension)')" ContinueOnError="true"/> 
     </Target> 

</Project> 
関連する問題