Visual Studio Mac:不支持在其他地方输出obj / bin文件夹?

问题描述 投票:1回答:1

我有一个多项目解决方案,并希望将所有生成的/ obj工件放在另一个文件夹中。

我尝试设置:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugType>portable</DebugType>
    <OutputPath>..\Bin\Core\Debug\</OutputPath>
    <IntermediateOutputPath>..\Bin\Core\obj\</IntermediateOutputPath>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <OutputPath>..\Bin\Core\Release\</OutputPath>
    <IntermediateOutputPath>..\Bin\Core\obj\</IntermediateOutputPath>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="Library.fs" />
  </ItemGroup>

</Project>

然而:

  1. obj文件夹仍在原始位置重新创建。也是在EMPTY所需的位置。
  2. “恢复包”触发“1”而不是将它们放在所需的位置
  3. 构建项目时,将填充obj文件夹。

这是版本:

Visual Studio Community 2017 for Mac版本7.3.2(版本12)运行时:Mono 5.4.1.7(2017-06 / e66d9abbb27)(64位)

NuGet版本:4.3.1.4445

.NET Core Runtime:/ usr / local / share / dotnet / dotnet运行时版本:2.0.0 SDK:/usr/local/share/dotnet/sdk/2.0.0/Sdks SDK版本:2.0.0 SDK MSBuild:/ Library / Frameworks / Mono.framework / Version /5.4.1 / lib / mono / msbuild / 15.0 / bin / SDks

macos build visual-studio-mac
1个回答
0
投票

此问题并非特定于Visual Studio for Mac。如果从命令行使用dotnet,则会发生相同的行为。

使用Visual Studio for Mac和dotnet CLI,在恢复NuGet包时,会在项目目录中创建obj目录,并且只包含还原生成的文件:

  • MyProject.csproj.nuget.cache
  • MyProject.csproj.nuget.g.targets
  • MyProject.csproj.nuget.g.props
  • project.assets.json

在构建文件中创建在../Bin/Core/Debug和../Bin/Core/obj目录中。

您可以通过设置BaseIntermediateOutputPath来获得所需的行为。但是,在项目文件中设置它可能会导致problems

最简单的解决方案是在解决方案目录中创建Directory.Build.props文件,并在那里设置BaseIntermediateOutputPath属性。

<Project>
  <PropertyGroup>
    <BaseIntermediateOutputPath>..\Bin\Core\obj\</BaseIntermediateOutputPath>
  </PropertyGroup>
</Project>

然后,将在您想要的目录中创建生成的NuGet还原文件。

Visual Studio for Mac似乎仍然希望在项目打开时在项目中创建一个空的obj目录,但在恢复或构建后没有文件。

© www.soinside.com 2019 - 2024. All rights reserved.