見つけた別の解決策を投稿しようと思ったので、この解決策を更新してログファイルを含めました。
これは、コマンドラインからWebアプリケーションを公開するのと似ていますが、ログファイルをクリーンアップして追加しただけです。元のソースもチェックしてくださいhttp://www.digitallycreated.net/Blog/59/locally-publishing-a-vs2010-asp.net-web-application-using-msbuild
WebアプリケーションプロジェクトのルートにMSBuild_publish_site.bat(任意の名前)を作成します
set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
set destPath=C:\Publish\MyWebBasedApp\
:: clear existing publish folder
RD /S /Q "%destPath%"
call %msBuildDir%\msbuild.exe MyWebBasedApp.csproj "/p:Configuration=Debug;PublishDestination=%destPath%;AutoParameterizationWebConfigConnectionStrings=False" /t:PublishToFileSystem /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_Publish_LOG.log
set msBuildDir=
set destPath=
<Import Project=
タグの下に次のxmlを追加して、WebアプリケーションプロジェクトファイルMyWebBasedApp.csprojを更新します
<Target Name="PublishToFileSystem" DependsOnTargets="PipelinePreDeployCopyAllFilesToOneFolder">
<Error Condition="'$(PublishDestination)'==''" Text="The PublishDestination property must be set to the intended publishing destination." />
<MakeDir Condition="!Exists($(PublishDestination))" Directories="$(PublishDestination)" />
<ItemGroup>
<PublishFiles Include="$(_PackageTempDir)\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(PublishFiles)" DestinationFiles="@(PublishFiles->'$(PublishDestination)\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="True" />
</Target>
これは、他のソリューションよりもうまく機能します。
詳細については、以下を確認してください。
1)http://www.digitallycreated.net/Blog/59/locally-publishing-a-vs2010-asp.net-web-application-using-msbuild
2)コマンドラインからWebアプリケーションを公開する
3)コマンドラインからVisualStudioプロジェクトをビルドします