jul*_*gon 5 html msbuild vs-web-application-project
我们的其中一个解决方案中有几个 html 页面,这些页面非常简单,仅限客户端,纯 html+javascript 页面可以访问我们的 web api。api 本身位于同一解决方案中的 Web 应用程序项目中。
我们现在正在使用一个网站项目来包含这些文件,但是管理该项目变得越来越难,因为它的信息放在解决方案上,而且它的大部分方面都无法像在 msbuild 项目文件中那样进行控制.
我想将这些 html 文件迁移到 Web 应用程序项目,但我正在努力使其尽可能基本。例如,我不想在项目上生成任何 dll。它应该在解决方案中只是提供对文件的访问,并使我们能够通过在_PublishedWebsites文件上设置构建操作来控制构建文件夹的内容。我们需要这个是因为项目中有一些不应该发布的杂项文件。
我尝试通过编辑 csproj 文件来创建一个空的 Web 应用程序并从中删除大部分内容。我设法删除了所有引用和整个Properties特殊文件夹(以及 AssemblyInfo.cs 文件),但是当我运行该build命令时,我仍然看到obj与bin文件夹一起创建的 dll 。然后,我尝试在 csproj 文件上伪造构建目标,如下所示:
<Target Name="Build" />
Run Code Online (Sandbox Code Playgroud)
现在当项目构建时,没有创建 dll/pdb,但 obj 和 bin 文件夹仍然存在。接下来,我尝试将 outputpath 属性设置为当前目录,如下所示:
<OutputPath>.</OutputPath>
Run Code Online (Sandbox Code Playgroud)
但即便如此,仍会创建 obj 文件夹。
编辑:
我刚刚发现了另一个常见的 msbuild 属性,它控制 obj 文件夹中的文件的放置位置。将其放入我的 csproj 文件后:
<IntermediateOutputPath>.</IntermediateOutputPath>
Run Code Online (Sandbox Code Playgroud)
我现在在构建时没有生成文件夹,这很好。
但是,当我打开解决方案或在 Visual Studio 中重新加载项目时,现在有一个小问题(我不确定这个过程是如何发生的以及发生在何处)。即使此时未构建项目,仍会生成一些文件:

我觉得目前的方法足以满足我的要求,但我真的很想知道是否有更优雅的方法来实现这一点。因此,问题是:有没有办法让 Web 应用程序项目像没有代码文件一样工作,有效地禁用输出生成(bin 和 obj 文件夹,以及 dll/xml/pdb 输出)?