【问题标题】:Precompiling a site for deployment using .targets file for MSBuild使用 MSBuild 的 .targets 文件预编译站点以进行部署
【发布时间】:2017-10-12 04:15:05
【问题描述】:

我有一个 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 的部署都可以。 我知道 Publish 操作中有一个用于预编译的复选框,但我不能使用它。我必须将现有的 XAML 构建与目标文件和可能的 .csproj 文件中的指令一起使用。

我还知道,部署文件后,我可以在服务器上使用Aspnet_compiler.exe 工具。但是我必须在复制文件之前完成它,因为我无权访问此服务器,并且我想防止在构建过程中添加手动操作。

如何预编译 ASP.NET 页面以进行部署,以便它们在我的场景中正确部署?

【问题讨论】:

  • 有任何反馈,您的问题是否解决了或有任何其他问题?
  • 抱歉,我已经开始实现它,但是在测试它是否正常工作之前,我有一些问题需要在构建中解决。我从来没有纠正过这些,因为我已经被放在了别的东西上。

标签: asp.net tfs msbuild


【解决方案1】:

您可以为您的项目创建一个 .pubxml 文件,然后签入到 TFS,在 .pubxml 文件中,将 precompileBeforePublish 设置为 True。

  <PropertyGroup>
    ......
    <PrecompileBeforePublish>True</PrecompileBeforePublish>
  </PropertyGroup>

在 xaml 构建定义中,添加这些 msbuild 参数:

 /p:deployOnBuild=true /p:publishProfile=***.pubxml

然后在 TFS xaml build 中,它会在部署之前进行预编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    相关资源
    最近更新 更多