{{위키데이터 속성 추적}}
'''사이드 바이 사이드 어셈블리'''({{lang|en|side-by-side assembly}}, '''SxS''', '''WinSxS''') [[마이크로소프트 윈도우]] 기술은 마이크로소프트 윈도우에서 [[동적 링크 라이브러리]](DLL) 사용 시 발생하는 문제(총체적으로 [[DLL 지옥]])를 완화시키는 것을 시도하는, [[윈도우 98]], [[윈도우 2000]] 이후 버전의 윈도우의 [[실행 파일]]을 위한 표준이다. 이러한 문제들은 충돌, DLL을 찾지 못하는 문제, DLL 중복 문제, 유효하지 않거나 존재하지 않는 등록 문제를 포함한다. 사이드 바이 사이드로, 윈도우는 여러 버전의 DLL을 윈도우 디렉터리의 <tt>WinSxS</tt> 하위 디렉터리에 저장하며 요청 시 이것들을 불러온다. 이를 통해 사이드 바이 사이드 [[매니페스트 파일|매니페스트]]를 포함하는 애플리케이션의 경우 의존성 문제를 줄여준다.

[[비주얼 C++]] 2005와 2008은 SxS에 모든 [[C (프로그래밍 언어)|C]] [[런타임 라이브러리]]들을 포함한다. 그러나 비주얼 C++ 2010에서 라이브러리들은 더 이상 이 기술을 사용하지 않는다. 그 대신 파일명에 DLL의 버전 번호를 포함시켜서 이제는 각기 다른 버전의 DLL이 기술적으로 완전히 각기 다른 DLL임을 의미하게 된다.<ref>Section "Visual C++ Libraries" in [https://msdn.microsoft.com/en-us/library/bb531344%28v=vs.100%29.aspx Breaking Changes in Visual C++]. Retrieved on 2010-09-10.</ref><ref>See section "Differences between Visual C++ 2008 and Visual C++ 2010" in [https://msdn.microsoft.com/en-us/library/dd293574.aspx "Deployment in Visual C++ 2010"] {{웨이백|url=https://msdn.microsoft.com/en-us/library/dd293574.aspx |date=20180325232139 }}. Retrieved on 2010-09-10.</ref>

== 매니페스트 포맷 ==
애플리케이션 매니페스트는 내부적으로 [[XML]]로 표현된다. SxS 매니페스트에 연결된 [[URL]]은 "urn:schemas-microsoft-com:asm.v1"이다.

[[클릭원스]] 등의 기타 최근의 몇몇 마이크로소프트 기술들은 동일한 매니페스트 포맷을 갖추고 있다.

=== 예시 매니페스트 ===
다음은 C 런타임 DLL에 의존하는 애플리케이션의 매니페스트의 예이다.

<syntaxhighlight lang="xml">
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>
</syntaxhighlight>

== WinSxS (윈도우 컴포넌트 스토어) ==
비스타 이후로 윈도우 운영 체제는 코어 구성 요소를 위해 WinSxS를 사용한다. <tt>winsxs</tt> 디렉터리에 속한 운영 체제 파일들은 윈도우 디렉터리 구조의 일반적인 위치로부터 [[하드 링크]]된다. <tt>winsxs</tt>의 하위 디렉터리의 파일은 여러 위치(예: <tt>System32</tt> 디렉터리와 애플리케이션 디렉터리)로부터 링크될 수 있다. [[파일 탐색기|윈도우 탐색기]]는 이 파일들이 차지하는 디스크 공간을 두 번 카운트한다.<ref>{{웹 인용|url=http://support.microsoft.com/kb/2592038|title=KB 2592038: How to Alleviate Disk Space Pressure Caused By a Large Windows Component Store (WinSxS) Directory|archive-date=2012-10-14|archive-url=https://web.archive.org/web/20121014123322/http://support.microsoft.com/kb/2592038|work=support.microsoft.com}}</ref> 이는 fsutil 명령 줄 프로그램을 통해 증명할 수 있다.<ref>{{웹 인용|url=http://blogs.technet.com/b/joscon/archive/2010/08/06/should-you-delete-files-in-the-winsxs-directory-and-what-s-the-deal-with-vss.aspx|title=Should you delete files in the \WinSXS directory?  And what’s the deal with VSS?|date=2010-08-06|author=joscon|work=The Windows Servicing Guy|확인날짜=2019-03-03|보존url=https://web.archive.org/web/20120101130655/http://blogs.technet.com/b/joscon/archive/2010/08/06/should-you-delete-files-in-the-winsxs-directory-and-what-s-the-deal-with-vss.aspx|보존날짜=2012-01-01|url-status=dead}}</ref> 링크 카운트를 보여주는 일부 서드 파티 탐색기 확장도 존재한다.

그러나 <tt>winsxs</tt>의 모든 파일이 이러한 방식으로 "실제" 운영 체제 파일로 투사되지는 않는다. 이를테면 일부 윈도우 업데이트 설치 후 업데이트에 의해 오래된 파일 버전은 <tt>winsxs</tt>에 그대로 유지되지만 "실제" 윈도우 디렉터리에 더 이상 연결되지는 않는다. 이로써 업데이트는 안전하게 제거할 수 있다.<ref name="Huges">{{웹 인용|last=Huges|first=Jeff|title=What is the WINSXS directory in Windows 2008 and Windows Vista and why is it so large?|date=2008-09-17|url=http://blogs.technet.com/b/askcore/archive/2008/09/17/what-is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-large.aspx|publisher=Microsoft Corporation|accessdate=15 March 2011}}</ref>

== 각주 ==
{{각주}}

== 외부 링크 ==
* [https://msdn.microsoft.com/en-us/library/aa376307.aspx Side-by-Side Assemblies (Windows)]
* [https://msdn.microsoft.com/en-us/library/k26e96zf.aspx ClickOnce Deployment Manifest Format]
* [https://msdn.microsoft.com/en-us/library/eew13bza.aspx Configuring .NET-Based Components for Registration-Free Activation]
* [http://blogs.msdn.com/b/junfeng/archive/2006/04/14/576314.aspx Diagnosing SideBySide failures]
* [http://blogs.msdn.com/b/junfeng/archive/2007/06/12/diagnose-sidebyside-failures-in-windows-xp-windows-server-2003.aspx Diagnose SideBySide failures in Windows XP/Windows Server 2003]

[[분류:코드 예시에 관한 문서]]
[[분류:윈도우 관리]]