0

今天我有一个容器正在运行dotnet watch -v --project ".\\MyProject" run --no-launch-profile,并且“MyProject”文件夹透明地映射到我的解决方案的 .NET Core 项目。因此,每当我在 Visual Studio 中更改文件时,它会立即在容器内被拾取并重新编译以允许快速更改和测试。但是我注意到,当我在主机上构建时,这会导致冲突问题,从而导致bin\Debug\netcoreapp3.1\MyProject.exe

为了解决这种情况,我想看看是否可以传递参数/参数/配置/ dotnet watch...文件夹且不与宿主 Visual Studio 冲突)

遗憾的是,我无法找到有关如何使用dotnet watch. 这可能吗?有更好的解决方案吗?

4

1 回答 1

1

dotnet watch您可以通过基于内置 dotnet 环境变量更改输出目录来解决此问题,而不是使用DOTNET_RUNNING_IN_CONTAINER.

<Project>
  <PropertyGroup Condition="'$(UsingMicrosoftNETSdk)' == 'true'">
    <DefaultItemExcludes>$(DefaultItemExcludes);$(MSBuildProjectDirectory)/obj/**/*</DefaultItemExcludes>
    <DefaultItemExcludes>$(DefaultItemExcludes);$(MSBuildProjectDirectory)/bin/**/*</DefaultItemExcludes>
  </PropertyGroup>
  <PropertyGroup Condition="'$(UsingMicrosoftNETSdk)' == 'true' AND '$(DOTNET_RUNNING_IN_CONTAINER)' == 'true'">
    <BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/obj/container/</BaseIntermediateOutputPath>
    <BaseOutputPath>$(MSBuildProjectDirectory)/bin/container/</BaseOutputPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(UsingMicrosoftNETSdk)' == 'true' AND '$(DOTNET_RUNNING_IN_CONTAINER)' != 'true'">
    <BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/obj/local/</BaseIntermediateOutputPath>
    <BaseOutputPath>$(MSBuildProjectDirectory)/bin/local/</BaseOutputPath>
  </PropertyGroup>
</Project>
于 2020-11-12T16:45:37.660 回答