gpt4 book ai didi

c# - 使用 ms build 预编译 asp.net View

转载 作者:可可西里 更新时间:2023-11-01 08:57:27 27 4
gpt4 key购买 nike

当我通过 visual studio 部署 asp.net 应用程序时,我知道我可以只选中 Precompile during publish 并取消选中 Allow precompiled site to be updateable

我想用 msbuild 工具做同样的事情,我正在使用 /p:MvcBuildViews=true/p:EnableUpdateable=false 但是当我转到 IIS 和打开的 View 它们仍然有它们的内容,这意味着它们没有预编译,对吧?

他们应该有一行 This is a marker file generated by the precompilation tool 就像他们从 VS 发布时一样。我错过了什么吗?

最佳答案

Precompile asp.net views with ms build

您应该使用参数 /p:PrecompileBeforePublish=true 而不是 /p:MvcBuildViews=true

MvcBuildViews 通常被错误地认为是激活后会产生预编译 View 的东西。实际上。将 View 包含到构建过程中只是一件事情,但它不会将这些编译到项目二进制文件文件夹中。

当我们在文件发布选项上选中复选框Precompile during publish 并取消选中复选框Allow precompiled site to be updateable 时,我们将在我们的FolderProfile.pubxml 文件:

  <PropertyGroup>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>False</EnableUpdateable>
</PropertyGroup>

所以如果你想用 msbuild 工具做同样的事情,我们应该使用参数:

/p:PrecompileBeforePublish=true;EnableUpdateable=false

此外,由于这些参数存储在 .pubxml 文件中(在 Solution Explorer 的 Properties 节点的 PublishProfiles 下)。它们现在设计为可以 checkin 并与团队成员共享。这些文件现在是 MSBuild 文件,您可以根据需要自定义它们。为了从命令行发布,只需传递 DeployOnBuild=true 并将 PublishProfile 设置为配置文件的名称:

msbuild.exe "TestPrecompiled.csproj" /p:DeployOnBuild=true /p:PublishProfile=FolderProfile.pubxml

当然,你可以同时使用参数和.pubxml文件,命令行中的参数会覆盖.pubxml文件中的属性:

msbuild.exe "TestPrecompiled.csproj" /p:DeployOnBuild=true /p:PublishProfile=FolderProfile.pubxml /p:PrecompileBeforePublish=true;EnableUpdateable=false

发布完成后,打开publish文件夹下的.cshtml文件,我们会看到一行This is a marker file generated by the precompilation tool, and should not be deleteed! 就像他们在从 VS 发布:

enter image description here

enter image description here

参见 Precompiling ASP.NET WebForms and MVC Views with MSBuild了解更多详情。

关于c# - 使用 ms build 预编译 asp.net View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49028212/

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