Save the following script file publishProject.bat
rem publish passed project rem params: %configuration% %destDir% %srcDir% %proj% @echo off SET DestPath=d:\projects\Publish\%2 SET SrcPath=d:\projects\Src\%3\ SET ProjectName=%4 SET Configuration=%1 RD /S /Q "%DestPath%" rem clear existed directory :: build project MSBuild "%SrcPath%%ProjectName%.vbproj" /p:Configuration=%Configuration% :: deploy project ::/t:TransformWebConfig MSBuild "%SrcPath%%ProjectName%.vbproj" /target:_CopyWebApplication /property:OutDir=%DestPath%\ /property:WebProjectOutputDir=%DestPath% /p:Configuration=%Configuration% xcopy "%SrcPath%bin\*.*" "%DestPath%\bin\" /k /y echo ========================================= echo %SrcPath%%3.vbproj is published echo =========================================
I am calling it from another batch file
@echo off rem VS2010. For VS2008 change %VS100COMNTOOLS% to %VS90COMNTOOLS% call "%VS100COMNTOOLS%\vsvars32.bat" SET ex=.\publishProject.bat Release call %ex% KillerWebApp1 KillerWebApp1\KillerWebApp1 KillerWebApp1 call %ex% KillerWebApp2 KillerWebApp2\KillerWebApp2 KillerWebApp2 call %ex% KillerWebApp3 KillerWebApp3\KillerWebApp3 KillerWebApp3 call %ex% KillerWebApp4 KillerWebApp4\KillerWebApp4 KillerWebApp4
EDIT : The code above works for most cases, but not for everyone. That is, we use another asp.net application and bind it as a virtual folder in IIS. For this situation, VS2008 worked fine with the code above, but VS2010 also copies files from the virtual directory during deployment. The following code also works correctly in VS2010 (a solution was found here )
Add to your project file (* .csproj, * .vbproj)
<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>
Change publishProject.bat to:
rem publish passed project rem params: %configuration% %destDir% %srcDir% %proj% @echo off SET DestPath=d:\projects\Publish\%2 SET SrcPath=d:\projects\Src\%3\ SET ProjectName=%4 SET Configuration=%1 :: clear existed directory RD /S /Q "%DestPath%" :: build and publish project MSBuild "%SrcPath%%ProjectName%.vbproj" "/p:Configuration=%Configuration%;AutoParameterizationWebConfigConnectionStrings=False;PublishDestination=%DestPath%" /t:PublishToFileSystem
Cheburek Aug 16 2018-11-11T00: 00Z
source share