如何告诉 dotnet watch 运行 不同的构建配置?
How to tell dotnet watch to run a different build configuration?
今天我有一个容器 运行 dotnet watch -v --project ".\MyProject" run --no-launch-profile
并且“MyProject”文件夹透明地映射到我的解决方案的 .NET Core 项目。因此,每当我更改 Visual Studio 中的文件时,它都会立即在容器内被拾取并重新编译以允许快速更改和测试。但是我注意到,当我在我的主机上构建时,这会导致冲突问题,导致 bin\Debug\netcoreapp3.1\MyProject.exe
发生冲突
为了解决这种情况,我想看看我是否可以将 argument/parameter/configuration/... 任何东西传递给 dotnet watch
,告诉它使用不同的构建配置(Debug 的副本真的但是称为 Container 以便它创建一个单独的文件夹而不与主机冲突 Visual Studio)
遗憾的是,我无法找到有关如何使用 dotnet watch
执行此操作的示例或文档。这可能吗?有更好的解决方案吗?
与其使用 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>
今天我有一个容器 运行 dotnet watch -v --project ".\MyProject" run --no-launch-profile
并且“MyProject”文件夹透明地映射到我的解决方案的 .NET Core 项目。因此,每当我更改 Visual Studio 中的文件时,它都会立即在容器内被拾取并重新编译以允许快速更改和测试。但是我注意到,当我在我的主机上构建时,这会导致冲突问题,导致 bin\Debug\netcoreapp3.1\MyProject.exe
为了解决这种情况,我想看看我是否可以将 argument/parameter/configuration/... 任何东西传递给 dotnet watch
,告诉它使用不同的构建配置(Debug 的副本真的但是称为 Container 以便它创建一个单独的文件夹而不与主机冲突 Visual Studio)
遗憾的是,我无法找到有关如何使用 dotnet watch
执行此操作的示例或文档。这可能吗?有更好的解决方案吗?
与其使用 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>