![](/img/trans.png)
[英]How to use command line msbuild to deploy VS2012 Web Site project without precompiling it?
[英]Precompiling a site for deployment using .targets file for MSBuild
我有一个ASP.NET Web项目(.Net 4.5,Visual Studio 2015)。
该解决方案使用XAML构建,而不是较新的Web构建。 一些内部版本使用文件副本将应用程序直接部署到IIS服务器。
我们不使用Visual Studio中的“发布”操作来发布项目。
在ASP.NET项目的.csproj文件中,添加了以下import
语句以添加其他.targets文件:
<Import Project="CSADeploy.targets" Condition="Exists('CSADeploy.targets')" />
<Target Name="AdditionalTargets">
<!-- ... -->
</Target>
在该目标文件中,文件被复制。
这是.targets文件的简短摘录:
<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
我希望预先编译部署到服务器的代码以进行部署,即“仅部署”或“具有可更新UI的部署”都可以。 我知道Publish操作中有一个复选框可以预编译,但我不能使用它。 我必须将现有XAML构建与目标文件以及.csproj文件中的指令一起使用。
我也知道,一旦文件被部署,我就可以在服务器上使用Aspnet_compiler.exe
工具。 但是我必须在复制文件之前执行此操作,因为我无权访问此服务器,并且希望防止在构建过程中添加手动操作。
如何预编译ASP.NET页面以进行部署,以便在我的方案中正确部署它们?
您可以为您的项目创建一个.pubxml文件,然后签入TFS,在.pubxml文件中,将precompileBeforePublish设置为True。
<PropertyGroup>
......
<PrecompileBeforePublish>True</PrecompileBeforePublish>
</PropertyGroup>
在xaml构建定义中,添加以下msbuild参数:
/p:deployOnBuild=true /p:publishProfile=***.pubxml
然后在TFS xaml构建中,它将在部署之前进行预编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.