gpt4 book ai didi

msbuild - 允许定义 ='MachineToApplication' msbuild 错误

转载 作者:行者123 更新时间:2023-12-03 06:25:04 25 4
gpt4 key购买 nike

我们有一个 ASP.NET MVC,具有 4-5 种不同的构建配置。每当我们更改构建配置时,我们都需要删除 Web 项目的 obj 文件夹,因为我们收到“allowDefinition=”MachineToApplication”错误。很痛苦,但我们通过删除构建前/构建后事件中的文件夹来管理。现在我需要配置 CI 来构建部署包。这意味着我无法删除 obj 文件夹。每次我编译例如使用以下 msbuild 参数

/p:CreatePackageOnPublish=true /p:DeployOnBuild=true

我收到错误:

web.config(123): error ASPCONFIG: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

据我了解,问题在于项目中有多个 .config 文件 - 在我们的例子中没有。我真的可以使用一些帮助来找到解释并找到永久(无黑客)修复。

编辑:该问题被标记为重复,但两个线程中相应的答案和原因明显不同。不确定这个标签的用途 - 我在发布这个问题之前已经阅读了该特定帖子,因为它没有回答我的问题。导致此错误消息的原因有多种。它是“相似”,但绝对不是重复的!

最佳答案

还有类似的question这里有一些针对这个问题的好的解决方案。

问题是构建部署包会在/obj 的子文件夹中创建 web.config 的副本。如果您进行重建或清理,通常会被清除。但是,如果您在一种配置(例如调试)中构建部署包,然后切换到另一种配置(例如发布),则 obj/Debug 文件夹不会被清除,并且其中的 web.config 文件会导致问题。

快速解决方案是清理所有配置,然后进行(重新)构建。或者,您可以删除项目中的/obj 文件夹。要永久解决该问题,您可以将中间输出 (/obj) 从项目文件夹中移出,或者修改项目以在重建时强制清除所有配置。

关于msbuild - 允许定义 ='MachineToApplication' msbuild 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5271320/

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