【问题标题】:PrecompileBeforePublish using MsbuildPrecompileBeforePublish 使用 Msbuild
【发布时间】:2013-11-16 04:03:04
【问题描述】:

我们使用Windows AzureCloud Service 上托管我们的应用程序,并使用Powershell 使用msbuild 构建和打包网站。

在发布我们的第一个响应时间非常慢,所以我们自然需要预编译应用程序。

Precompiling using the aspnet_compiler 有很多文档,但是我找不到任何有关使用的官方文档:

msbuild Web.sln /p:PrecompileBeforePublish=true

针对 MSDN 的 Google search 没有给我任何帮助,而通常 MSDN 是相当彻底的。我能看到的只是今年早些时候有用的Stack post

那么有人知道PrecompileBeforePublish 的任何正式文档吗?我是不是看错了来源?

如果做不到这一点,flag 到底为我们提供了什么,它是否与Precompilation for Deployment with an Updatable UI (reference) 相同?

【问题讨论】:

标签: c# asp.net msbuild


【解决方案1】:

这个问题发布已经有一段时间了,仍然没有好的答案。最近想改变 MSBuild 运行 aspnet_compiler.exe 的方式,但是没有找到文档。我做了一些挖掘,这是我的经验。

只有同时使用DeployOnBuildPrecompileBeforePublish 参数时才会进行预编译。其他可用参数为EnableUpdateableUseFixedNames

msbuild Web.sln /p:DeployOnBuild=true /p:PrecompileBeforePublish=true /p:EnableUpdateable=false /p:UseFixedNames=true

如果您在 Visual Studio 中更改预编译选项,您可以获得类似的结果。这可以通过Project > Publish > Configure > Settings > File Publish Options > Precompile during publishing > Configure 完成。

link to image

这是参数在 .pubxml 文件中的显示方式:

    <PrecompileBeforePublish>True</PrecompileBeforePublish>
    <EnableUpdateable>False</EnableUpdateable>
    <DebugSymbols>True</DebugSymbols>
    <WDPMergeOption>CreateSeparateAssembly</WDPMergeOption>
    <UseFixedNames>True</UseFixedNames>

由于找不到文档,您可能希望更改这些选项并查看生成的 .pubxml 文件,以了解在命令行中使用哪些其他参数。

【讨论】:

    【解决方案2】:

    我认为,你的问题不是预编译,我明白了,你已经做好了预编译。

    我认为您的项目太大(检查您的最终 bin 目录大小)IIS 读取每个 dll,并在运行任何代码行之前调试符号并将它们加载到内存中。

    如果你的项目太大,而你的虚拟环境资源低,磁盘,低内存,低cpu,那么它就没有魔法了。

    建议:

    1. 尝试减小项目输出的大小。 (删除调试符号 可以是一个选项)。
    2. 删除所有未使用的引用...(.net 和第 3 方)(编辑,添加)
    3. 扩展您的环境配置。

    问候...

    【讨论】:

      【解决方案3】:

      解决您的问题的方法是,为您的网站添加一个新的 Web 部署项目,该项目将自动预编译您的网站,并且该项目将包含预编译的 Web 输出。如果您没有在右键单击中获得 Web 部署项目,请下载用于 Visual Studio 的 32 位或 64 位工具,该工具将添加到您的 Visual Studio 或者如果您想通过 MS Build 完成,您需要参考https://msdn.microsoft.com/en-us/library/ms227972.aspx或者你也可以参考http://www.asp.net/web-forms/overview/older-versions-getting-started/deploying-web-site-projects/precompiling-your-website-vb 我希望我对你有所帮助。

      【讨论】:

        猜你喜欢
        • 2017-10-31
        • 1970-01-01
        • 2014-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-17
        相关资源
        最近更新 更多