0

Visual Studio 2008 프로젝트에 대해 외부에서 유지 관리되는 HTML 도움말 파일이 들어있는 디렉터리가 있습니다. 디렉토리에는 잠재적으로 빌드에서 빌드까지 임의의 수의 파일이 포함될 수 있습니다. 디렉토리와 파일을 솔루션 익스플로러를 통해 필요한 출력 (내용)을 포함하는 프로젝트에 추가하는 방법을 알고 있습니다. 그러나이 경우에는 항상 지정된 html 디렉토리, 모든 하위 폴더 및 모든 파일을 자동으로 포함하고자합니다. 파일을 추가 할 때마다 속성을 설정하지 않아도됩니다.VisualStudio 2008 C# 프로젝트 리소스로 외부에서 유지 관리되는 디렉터리를 포함하려면 어떻게해야합니까?

도움말 파일에 변경 사항이있을 때마다 "Build Action"및 "Copy to Output Directory"속성을 설정할 필요가 없습니다. 또 다른 제약은 배포 환경에 따라 설치 프로젝트 (동일한 솔루션의 일부)와 ClickOnce 설치를 모두 사용하고 있다는 것입니다. 이것은 믿을 수 없을만큼 단순해야만하는 것처럼 보이지만 지금까지는 대답을 찾을 수 없었습니다.

도움 주셔서 감사합니다.

답변

1

볼 수있는 한 가지 방법은 .csproj 파일을 조정하고 게시 빌드 대상을 추가하여 복사하는 것입니다. 필요한 항목에 가까워 야합니다.

<ItemGroup> 
    <DocumentationFiles Include="DocsDirectory\**\*"/> 
</ItemGroup> 

<Target Name="AfterBuild"> 
    <Copy 
     SourceFiles="@(DocumentationFiles)" 
     DestinationFolder="Output\Docs\" 
    /> 
</Target> 
+0

이렇게하면 ClickOnce에 배포 할 수있는 콘텐츠가되지 않습니다. –

+0

설치와 관련하여 테스트하지는 않았지만 올바른 방향으로 움직이는 것처럼 보이는 빌드에서는 테스트했습니다. 그러나 DocsDirectory의 내용을 재귀 적으로 추가하지는 않고 최상위 수준의 파일 만 가져 왔습니다. 또한 해당 항목 그룹을 SolutionExplorer에 추가했지만 최상위 파일에는 '/! \'및 하위 폴더가 표시되지 않았습니다. – Skcussm

+0

@Hans Passant 맞습니다. 파일을 매니페스트에 추가하려면 추가 작업을해야하지만 AfterBuild 전략은 여전히 ​​견고한 방법이라고 생각합니다. –