2017-12-19 14 views
0

나는 다중 프로젝트 솔루션을 가지고 있으며 생성 된 모든 in/obj 아티팩트를 다른 폴더에 저장하려고합니다.Visual Studio Mac : 다른 곳에서 obj/bin 폴더를 출력 할 수 없습니까?

내가 설정하려고 그러나

<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 폴더는 여전히 원래 위치에 다시 생성됩니다. 도 원하는 위치에 있지만 비어 있습니다.
  2. "패키지 복원"은 "1"을 트리거하고 원하는 위치에 두지 않음
  3. 프로젝트가 빌드되면 obj 폴더가 채워집니다. 모노 5.4.1.7 (2017-06/e66d9abbb27) (64 비트) :

    비주얼 스튜디오 커뮤니티 2017 Mac 버전 7.3.2 (12 빌드) 런타임 :

이은 버전입니다

NuGet 버전 : 4.3.1.4445

.NET 핵심 런타임 :/usr/지방/주/DOTNET/DOTNET 버전 드 티엠포 드 ejecución : 2.0.0 SDK :/usr/지방/주/DOTNET/sdk/2.0.0/Sdks Verschon 델 SDK : 2.0.0 SDK 드의 MSBuild : /Library/Frameworks/Mono.framework/Versions/5.4.1/lib/mono/msbuild/15.0/bin/Sdks

답변

0

이 문제는 특정하지 않습니다 Mac 용 Visual Studio. 명령 줄에서 dotnet을 사용하면 동일한 문제가 발생합니다. 비주얼 Mac 용 스튜디오, 그리고 후에 .NET CLI와

는 OBJ 디렉토리는 NuGet 패키지를 복원에 프로젝트 디렉토리에 생성 및 복원에 의해 생성 된 파일 만 포함됩니다 :

  • 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 복원 파일이 원하는 디렉토리에 만들어집니다.

Mac 용 Visual Studio는 프로젝트를 열 때 여전히 프로젝트에서 빈 obj 디렉터리를 만들려고하지만 복원 또는 빌드 후에는 파일이 없습니다.

+0

이상한데, 이걸로 2 개의 프로젝트를 설정 한 후에는 "작동"하지만 \ Bin, \ Bin \ Core에 또 다른 netstandard2.0 폴더를 만듭니다. – mamcx

+0

Ah! 경로 끝에 "\"가 있으면 문제가 발생합니다. – mamcx