我有一个多项目解决方案,并希望将所有生成的/ 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>
然而:
obj
文件夹。是
也在理想的位置,但EMPTY。 这是版本:
Visual Studio Community 2017 for Mac版本7.3.2(版本12)运行时: 单声道5.4.1.7(2017-06 / e66d9abbb27)(64位)
NuGetVersión:4.3.1.4445
.NET Core Runtime:/ usr / local / share / dotnet /dotnetVersióndetiempo de ejecución:2.0.0 SDK:/usr/local/share/dotnet/sdk/2.0.0/SdksVersión del SDK:2.0.0 SDK de MSBuild: /Library/Frameworks/Mono.framework/Versions/5.4.1/lib/mono/msbuild/15.0/bin/Sdks
答案 0 :(得分:0)
此问题并非特定于Visual Studio for Mac。如果您从命令行使用 dotnet ,则会出现相同的行为。
使用Visual Studio for Mac和dotnet CLI,在恢复NuGet包时,会在项目目录中创建obj目录,并且只包含恢复生成的文件:
在构建文件中创建在../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目录,但在恢复或构建后没有文件。