설치 패키지를 만들 때 발생하는 문제를 해결하려고합니다. 설치 패키지는 Visual Studio 2010의 도움으로 wix로 작성되었습니다. 설치 패키지는 데이터베이스를 만들고 해당 데이터베이스에 테이블을 추가합니다. 이 문제점은 사용자가 설치 패키지를 실행하고 데이터베이스가 작성되는 원격 서버에 연결될 때 발생합니다. 참여하는 두 호스트가 동일한 도메인에 있지 않으므로 SQL Server 인증을 사용해야합니다. 설치 패키지에서 사용자는 Windows 및 SQL Server 인증 중 하나를 선택할 수 있습니다. 현재 사용자는 두 가지 옵션 중 하나를 선택할 수있는 대화 상자를 표시합니다. 두 옵션의 결과는 연결 문자열을 저장하는 파일에서 구성 값, 즉 Integrated Security
스위치가 true
과 false
사이에서 토글됨을 나타냅니다. 문제는 설치 중에 사용자의 자격 증명을 사용하여 원격 SQL 서버에 로그인하는 것입니다. SQL 자격 증명을 사용하도록 설치 프로그램을 변경해야합니다.두 개의 다른 SqlDatabase 요소를 조건부로 사용하는 방법은 무엇입니까?
<util:User Id="SqlUser" Name="[SQLSERVER_USERNAME]" Password="[SQLSERVER_PASSWORD]" />
내가 모르는 무엇 : 사용자 속성이 WixUtilExtension에서 제공 한 사용자 요소의 ID를 할당
<sql:SqlDatabase Id="MasterDB" Server="[SQLSERVER_SERVER]" Instance="[SQLSERVER_INSTANCENAME]" Database="master" User="SqlUser" />
: 나는 내가 다음과 같은 SQL 요소를 사용하여이를 달성 할 수있는 알고 두 개의 다른 SqlDatabase 요소를 만드는 방법입니다. 하나는 Windows 용이고 다른 하나는 SQL 용입니다. 동일한 이름의 인증입니다. 이상적으로는이 같은 것을 갖고 싶어 다음 SqlDatabase 요소는 어린이와 같은 조건 요소를 허용하지 않습니다
<sql:SqlDatabase Id="MasterDB" Server="[SQLSERVER_SERVER]" Instance="[SQLSERVER_INSTANCENAME]" Database="master" User="SqlUser"><Condition>SQLSERVER_AUTHENTICATION=1</Condition></sql:SqlDatabase>
<sql:SqlDatabase Id="MasterDB" Server="[SQLSERVER_SERVER]" Instance="[SQLSERVER_INSTANCENAME]" Database="master"><Condition>SQLSERVER_AUTHENTICATION=0</Condition></sql:SqlDatabase>
를, 그래서 이것은 다른 수행해야합니다. 하지만 어떻게해야할지 모르겠다. 말해 줄 수 있어요?
감사합니다,하지만 난 돈 ' 데이터베이스 자체를 만들고 싶지 않습니다. 조각 아래에 SqlDatabase 요소를 중첩하여 모든 SqlString 요소에서 사용중인 로케이터 역할을합니다. SqlString 요소는 databse를 생성합니다. 그들은 모두 두 개의 SqlDatabase Id를 참조하기 때문에 동일한 ID를 가진 두 개의 SqlDatabase 요소를 가질 기회가 있는지 묻습니다. 아마도 SqlString 요소를 사용하지 않도록 설치 프로그램을 다시 작성해야합니다. – BdN3504
필자는 피하려고했던 솔루션을 사용했습니다. 사용되는 각 데이터베이스에 대해 두 개의 DatabaseLocator 레코드가 있습니다. 예 : '. 보시다시피, 하나는 SqlAuthentication을 사용하고 다른 하나는 User 특성을 생략합니다. 이제는 SqlString 요소가 포함 된 모든 구성 요소가 SQLSERVER_AUTHENTICATION 조건을 확인하고 복제됩니다. 복제 된 SqlString 구성 요소에 대한 –
BdN3504
예 (1 부) : '<구성 요소 ID = "DB_CMP"가이 드 = "PUT-GUID-HERE"키 패스 = "예"> <[CDATA [SQLSERVER_AUTHENTICATION = 0] 중복 SqlString 부품 (파트 2)에 대한> ' –
BdN3504