development

MSBuild ProjectReference : private ( "로컬 복사")-허용되는 값과 동작은 무엇입니까?

big-blog 2020. 12. 9. 21:09
반응형

MSBuild ProjectReference : private ( "로컬 복사")-허용되는 값과 동작은 무엇입니까?


요약<private> / "로컬 복사"옵션 이 MSBuild에서 작동 하는 방식을 자세히 설명하는 공식 문서가 있습니까? 그리고 거기에 어떤 가치가 들어가야합니까?


이 때 추가 프로젝트 참조를 다른 Visual Studio에서 하나 개의 프로젝트에서, 그것은을 추가 할 <ProjectReference Include=".....csproj">받는 사람 .csproj의 MSBuild 파일.

이 때 추가 파일 참조를 파일 시스템에서 어셈블리 파일을 Visual Studio에서 하나 개의 프로젝트에서, 그것은을 추가 할 <Reference Include="Foo"> <HintPath>....Foo.dll</HintPath> ...받는 사람 .csproj의 MSBuild 파일.

에서는 가지 경우, 비주얼 스튜디오 설정하기위한 Copy Local = True|False, 서브 - 소자 <Private>True</Private>또는 <Private>False</Private>추가 될 것이다.

Reference그리고 ProjectReference아래의 문서화 된 것 같다 공통의 MSBuild 프로젝트 항목 :

<ProjectReference>
  Represents a reference to another project.

  Item Name    Description
  -------------------------
   Name         ...
   Project      ...
   Package      ...

<Reference>
  Represents an assembly (managed) reference in the project.

  Item Name     Description
  --------------------------
   HintPath      Optional string. Relative or absolute path of the assembly.
   Name          ...
   ...
   Private       Optional string. Determines whether to copy the file to the output directory. 
                 Values are:
                     1. Never
                     2. Always
                     3. PreserveNewest

당신은 알아 차릴 것입니다,

  1. ProjectReference 문서화하지 않는<private> 전혀 항목
  2. Reference True또는 False가능한 값을 나열하지 않습니다 .

그래서. 어? <private>옵션의 작동 방식을 자세히 설명하는 공식 문서 (좋은 블로그 항목에 만족할 것입니다)가 있습니까? 의사가 잘못 됐나요, 아니면 뭔가 더 있나요?


내 VS 2013 Express의 예제 스 니펫 :

...
  <ItemGroup>
    <Reference Include="ClassLibrary2">
      <HintPath>C:\Somewhere\ClassLibrary2.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="System" />
...
  <ItemGroup>
    <ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj">
      <Project>{861dd746-de2e-4961-94db-4bb5b05effe9}</Project>
      <Name>ClassLibrary1</Name>
      <Private>False</Private>
    </ProjectReference>
...

Reference 및 ProjectReference 항목의 경우 Private에 허용되는 값은 True 또는 False입니다.

msbuild의이 속성은 VS의 프로젝트 참조 속성 (로컬 복사)에 해당합니다.

VS에서 참조 속성을 수동으로 설정하고 xml을 확인하여 위의 답변을 얻었습니다. 비공개 항목 메타 데이터의 공식 문서를 찾을 수 없습니다.

https://msdn.microsoft.com/en-us/library/bb629388.aspx 의 문서를 확인하면 허용되는 값이 Never, Always 및 PreserveNewest로 표시됩니다. 이는 잘못된 것으로 보이며 Content, None 및 기타 파일 항목에 사용되는 CopyLocal 메타 데이터에만 사용할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/26168401/msbuild-projectreferenceprivate-copy-local-what-are-the-allowed-values-an

반응형