我有一个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">
我希望部署到服务器的代码为precompiled for deployment,只有部署或使用可更新UI部署才可以。 我知道发布操作中有一个复选框可以预编译,但我无法使用它。我必须使用现有的XAML版本与目标文件以及.csproj文件中的指令。
我也知道在部署文件后我可以在服务器上使用Aspnet_compiler.exe
工具。但是我必须在复制文件之前执行此操作,因为我无法访问此服务器,并且我想阻止向构建过程添加手动操作。
如何预编译ASP.NET页面以进行部署,以便在我的方案中正确部署它们?
答案 0 :(得分:1)
您可以为项目创建.pubxml文件,然后检入TFS,在.pubxml文件中,将precompileBeforePublish设置为True。
<PropertyGroup>
......
<PrecompileBeforePublish>True</PrecompileBeforePublish>
</PropertyGroup>
在xaml构建定义中,添加以下msbuild参数:
/p:deployOnBuild=true /p:publishProfile=***.pubxml
然后在TFS xaml构建中,它将在部署之前进行预编译。