2

私は単一のWebプロジェクトを構築して公開していますが、これは大きなソリューションです。TeamBuildプロセスによって呼び出されるcmdファイルからmsbuild.exeを開始します。

c:\Windows\Microsoft.NET\Framework64\v4.0.30319    MSBuild.exe /p:Configuration=Release /p:DeployOnBuild=True /p:CreatePackageOnPublish=true /T:Package "%~dp0%xxx.Project1.csproj"  

Web配置パッケージ設定のproject1.csprojのプロジェクト設定:

パッケージが作成される場所:$(SourcesDirectoryOfProject)\ .. \ .. \ .. \ .. \ bin \ xxx.Project1

これは非常にうまく機能しますが、問題は、「.. \ .. \ .. \ .. \ bin\xxx.Project1」の「Archive」という名前のフォルダが非常に長くなることです。Web.configなどの実際のWebファイルに到達するまで、16個のサブフォルダーをクリックする必要があります。アーカイブフォルダの下には、一時的なドロップフォルダへの穴フォルダ構造を表すように見えるサブフォルダがあります。ここで、公開用のファイルが最初に作成されます。

...\Archive\Content\D_C\Builds\9\TeamProjectName\BigProject\Sources\BigProject\Main\Source\SolutionName\ProjectName\obj\Release\Package\PackageTmp\bin

そして最後にPackageTempの下に自分のWebファイルがあります。それに関する本当の問題は、いくつかのファイルのフォルダー名が長くなることです-そのため、それらを正しく削除できず、コンピューターの処理を実行する前にBuilds-Folderを空にできないため、TeamBuildがクラッシュします。

最良の方法は、msbuild.exe(またはプロジェクト設定内)にWebProjectファイルをダンプする場所を指定できるオプションを用意することです(つまり、ファイルはフォルダー:App_Code、bin、Configuration、ファイル: global.asax、一部のxamlxおよびWeb.config)

では、WebProjectデータを別の指定されたパスにドロップするにはどうすればよいですか?

よろしくお願いします

セバスチャン

4

1 に答える 1

1

問題は、間違ったMSBuild.exeコマンドでした。私は今これを使用しています。これは、IISを必要とせずに、Webサービスを特定のローカルフォルダーにのみ展開します。

MSBuild.exe /target:Build;PipelinePreDeployCopyAllFilesToOneFolder /p:Configuration=Release;_PackageTempDir=%binfolder% "projectfile.csproj" 

また、この長いフォルダ名の処理も行いません。

于 2012-06-21T08:43:40.200 に答える