我想创建一个脚本,执行一些操作,然后将网站发布到生产环境,并在Visual Studio 2010中运行另一个脚本。
我想创建一个脚本,执行一些操作,然后将网站发布到生产环境,并在Visual Studio 2010中运行另一个脚本。
<Import Project="$(MSBuildExtensionsPath)\SDCTasks\Microsoft.Sdc.CommonWOBizTalk.tasks"/>
...
<ItemGroup>
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../website.sln">
<Targets></Targets>
<Properties></Properties>
</SolutionToBuild>
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../services.sln">
<Targets></Targets>
<Properties></Properties>
</SolutionToBuild>
</ItemGroup>
<PropertyGroup>
<PublishFolder>\\myservername\deployto</PublishFolder>
</PropertyGroup>
<Target Name="AfterCompile" DependsOnTargets="PublishWebSite;PublishServices;SetConfiguration"/>
<Target Name="PublishWebSite">
<Folder.CleanFolder Path="$(PublishFolder)" Force="True" />
<Folder.CopyFolder Source="$(OutDir)_PublishedWebsites\MyWebSite" Destination="$(PublishFolder)" />
</Target>
<Target Name="PublishServices">
<MakeDir Directories="$(PublishFolder)\Services"/>
<Folder.CopyFolder Source="$(OutDir)_PublishedWebsites\MyService" Destination= "$(PublishFolder)\ Services" />
</Target>
<Target Name="SetConfiguration">
<Copy SourceFiles="$(OutDir)_PublishedWebsites\MyWebSite\WebRelease.config" DestinationFiles="$(PublishFolder)\web.config" />
<Copy SourceFiles="$(OutDir)_PublishedWebsites\MyService\WebRelease.config" DestinationFiles="$(PublishFolder)\Services\web.config" />
</Target>
Open Web publishing configuration file (e.g. Test.pubxml)
Define a target that executes a custom scripts located somewhere within your project (e.g. some Powershell script within an inner folder). This code should be put within the Project
tag, after the first PropertyGroup
:
<PropertyGroup>
<PipelineDependsOn>
ExtBuild;
$(PipelineDependsOn);
</PipelineDependsOn>
</PropertyGroup>
<Target Name="ExtBuild">
<Message Text="Building something else" Importance="high"/>
<Exec Command="powershell.exe -file "$(ProjectDir)\Publish\publish.ps1"" />
</Target>
注意:当前目录为$(ProjectDir)
,因此在从目标文件中包含其他ps1文件时要小心。
对于预发布,至少对于ClickOnce,您可以添加:
<Target Name="ClearPrevPulish" BeforeTargets="PublishOnly">
<RemoveDir Directories="$(PublishUrl)" />
</Target>