gpt4 book ai didi

asp.net - 如何在构建过程中从 Visual Studio 调用 aspnet_compiler?

转载 作者:行者123 更新时间:2023-12-02 17:04:50 27 4
gpt4 key购买 nike

我希望 Visual Studio precompile my ASP.NET application用作 Azure Web 角色负载。所以我找到了this post这解释了如何调用 aspnet_compiler 来验证 View 。

我尝试将以下内容添加到 ASP.NET 应用程序的“构建后事件”中:

call "%VS100COMNTOOLS%\vsvars32.bat"
aspnet_compiler -v / -p $(ProjectDir)

或者这个(明确指定的应用程序名称):

call "%VS100COMNTOOLS%\vsvars32.bat"
aspnet_compiler -v /ASP.NET-Application-ProjectNameHere -p $(ProjectDir)

在这两种情况下,当构建运行时,我都会在构建输出中看到以下内容:

Setting environment for using Microsoft Visual Studio 2010 x86 tools.
Utility to precompile an ASP.NET application
Copyright (C) Microsoft Corporation. All rights reserved.

并且显然没有发生预编译,因为如果我将任何 .aspx 或 .cshtml 文件“构建操作”更改为“无”,它不会到达 Azure 服务包,并且一旦包部署到 Azure, View 就不再打开.

如何在 Visual Studio 中设置 aspnet_compiler 进行预编译?

最佳答案

如果您想在 Visual Studio/msbuild 中使用 Asp.NET 编译器,那么您可以添加 AspNetCompiler任务到您的项目文件 (.csproj/.vbproj) 并将 MvcBuildViews 设置为 true

示例:

<Project>
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
<!-- ... -->
<Target Name="PrecompileWeb" AfterTargets="build" Condition="'$(MvcBuildViews)'=='true'">
<Message Text="Starting AspNetCompiler for $(ProjectDir)" Importance="high" />
<AspNetCompiler
VirtualPath="temp"
PhysicalPath="$(WebProjectOutputDir)"
Force="true"
/>
</Target>
<!-- ... -->
</Project>

您还可以设置TargetPath属性来指定目标目录。

AfterTargets="build" 类似于“构建后事件”。请参阅Target Build Order了解更多。

关于asp.net - 如何在构建过程中从 Visual Studio 调用 aspnet_compiler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12511368/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com