在Web开发项目中是否有一种方法可以只复制ASP.net Web应用程序项目中没有Web开发项目目标的已更改文件?
所以,我的流程将如下所示:1。)仅编译以正确顺序更改/更新文件的应用程序(即在Web应用程序之前编译库项目,因为Web应用程序依赖于库),2 。)仅将更改的文件复制到Release文件夹。 3.)我想这样做而不必使用Web开发项目目标。我的Web开发项目配置文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>10.0.30319</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{399DEB82-5D44-466C-ADD5-D76F85A519D8}</ProjectGuid>
<SourceWebPhysicalPath>..\Tracker_Web</SourceWebPhysicalPath>
<SourceWebProject>{A2536EFD-8583-4C35-8F18-21F61DA861C3}|Tracker_Web\Tracker_Web.csproj</SourceWebProject>
<SourceWebVirtualPath>/Tracker_Web.csproj</SourceWebVirtualPath>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>.\Debug</OutputPath>
<EnableUpdateable>true</EnableUpdateable>
<UseMerge>true</UseMerge>
<SingleAssemblyName>Tracker_Web_Deploy</SingleAssemblyName>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugSymbols>false</DebugSymbols>
<OutputPath>.\Release</OutputPath>
<EnableUpdateable>true</EnableUpdateable>
<UseMerge>true</UseMerge>
<SingleAssemblyName>Tracker_Web_Deploy</SingleAssemblyName>
<DeleteAppDataFolder>true</DeleteAppDataFolder>
</PropertyGroup>
<ItemGroup>
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\obj\**\*.*" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\Properties\**\*.*" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.csproj*" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.resx" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.sln" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\_svn\**\*.*" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*.*" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\App_Data\**\*.*" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\bin\**\*.pdb" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\bin\**\*.xml" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\bin\Tracker_Web_Deploy.*" />
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\Exception*.aspx*" />
<ProjectReference Include="..\Tracker_Web\Tracker_Web.csproj">
<Project>{A2536EFD-8583-4C35-8F18-21F61DA861C3}</Project>
<Name>Tracker_Web</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.targets" />
<Target Name="BeforeBuild">
</Target>
<Target Name="BeforeMerge">
</Target>
<Target Name="AfterMerge">
</Target>
<Target Name="AfterBuild">
<MakeDir Directories="$(OutputPath)\App_Data" />
<RemoveDir Directories=".\Source" />
<Message Text="Delete File: $(SourceWebPhysicalPath)\bin\Tracker_Web_Deploy.dll" Importance="high" />
<Exec Command="del /F /Q $(SourceWebPhysicalPath)\bin\Tracker_Web_Deploy.dll" />
</Target>
我看到了如何使用MSBuild执行此操作,但没有使用Web开发项目。任何帮助将不胜感激。
答案 0 :(得分:0)
如果您使用的是VS2010,那么最新的Azure SDK版本中包含一个更好的发布向导。有关详细信息,请参阅here。它将Web部署项目的大部分功能带入Web应用程序项目本身。默认情况下,发布体验是增量的 - 您只会发布自上次发布以来已更改的文件。
从VS2012开始,Web部署项目已被弃用,因此无论何时更新VS版本,最终都会使用新向导。