Visual Studio 不编译成调试和发布目录

Visual Studio does not compile into debug and release directories

我在 Visual Studio 2017 年工作。我继承了一个 Web 项目,正在尝试为配置转换引入构建配置。我发现奇怪的是,无论我 select 使用什么构建配置,项目总是编译到 bin\ 目录,没有用于构建的子目录 selected.

更奇怪的是,我创建了两个新的网络项目来发现问题可能出在哪里并得到了不同的结果。一个是 .Net Core Web 项目,它在这些构建配置下编译时确实创建了 Debug 和 Release 目录。另一个和继承项目一样,是一个.Net Framework web项目,同样只会编译到bin\目录下。

有谁知道发生了什么事吗?

虽然我没有发现为什么在构建期间配置名称没有自动附加到输出路径,也没有发现为什么转换没有应用于配置文件,但我通过修改项目文件解决了这个问题。

对于标识用于构建的设置的每个 PropertyGroup 节点,我将 OutputPath 值从 bin\ 更改为 bin\$(Configuration)。

然后,我将以下内容插入项目节点以使转换生效:

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
  <Target Name="AfterCompile" Condition="Exists('Web.$(Configuration).config')">
    <TransformXml Source="Web.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="Web.$(Configuration).config" />
    <ItemGroup>
      <AppConfigWithTargetPath Remove="Web.config" />
      <AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
        <TargetPath>$(TargetFileName).config</TargetPath>
      </AppConfigWithTargetPath>
    </ItemGroup>
  </Target>