2011-03-23 4 views
3

배경 : 우리는 ClickOnce에서 배포 한 WPF 응용 프로그램을 사용합니다.이 응용 프로그램은 WCF Services와 대화하며, 차례로 자체 SQL 데이터베이스와 클라이언트 OM을 통한 SharePoint. WCF와 ClickOnce를 설정하기 위해 설치 프로젝트가 있습니다. 설치 프로젝트는 설치 사용자의 서버 경로와 데이터베이스 연결 문자열에 대한 세부 정보를 가져오고 설치 XML을 작성하고 ClickOnce 스트 래퍼를 업데이트하는 것과 같은 재미있는 작업을 수행하는 Installer 클래스를 실행합니다 배포 URL 등.VS 설치 프로젝트를 사용하여 SharePoint BDC 모델 패키지를 배포하는 방법

최종 설치 사용자가 SharePoint 목록 인터페이스를 사용하여 데이터베이스에서 거의 변경되지 않은 일부 테이블 값을 구성 할 수 있도록이 설치 관리자를 통해 SharePoint에 일부 BDC 모델을 추가해야합니다. 가능한 한 설치 프로세스가 "한 번의 클릭으로"요구 사항인데 클라이언트가 부과합니다.

Visual Studio 2010 솔루션에 BDC 모델 프로젝트를 포함 시키면 BDC 관련 패키지 용 WSP를 얻을 수 있습니다.

<Property Key="SiteUrl" 
    Value="http://BuildingWorkstationSharePointInstanceUrl/" /> 

비주얼 스튜디오는 빌드하지 않습니다이와 큰 ...
한 문제를 소리, 그러나,이 WSP에 패키지 가져옵니다 feature.xml을,이 하드 코딩 라인이 나타납니다이다 SiteUrl이 컴퓨터에 로컬 인 SharePoint 인스턴스가 아닌 다른 사이트로 설정되어 있으므로 (예 : 절름발이) 이전 WSP를 변경할 수 없습니다. 이것은 또한 설치하는 사용자가 데이터베이스 연결 정보를 제공 한 후 설치 프로그램을 다시 작성되어야 할 것이다

<LobSystemInstance Name="DatabaseName"> 
    <Properties> 
    <Property Name="AuthenticationMode" Type="System.String">PassThrough</Property> 
    <Property Name="DatabaseAccessProvider" Type="System.String">SqlServer</Property> 
    <Property Name="RdbConnection Data Source" Type="System.String">DatabaseServer</Property> 
    <Property Name="RdbConnection Initial Catalog" Type="System.String">DatabaseName</Property> 
    <Property Name="RdbConnection Integrated Security" Type="System.String">SSPI</Property> 
    <Property Name="RdbConnection Pooling" Type="System.String">True</Property> 
    <Property Name="ShowInSearchUI" Type="System.String" /> 
    </Properties> 
</LobSystemInstance> 

:

또한, .bdcm 자체가 하드 코딩 된 연결 문자열 정보가 파일.

MSI를 통해 서버에 WSP를 설치하는 가장 좋은 방법이 무엇인지 잘 모르겠습니다. (PowerShell 스크립트를 실행하려고 시도한 것은 제가 지금까지 생각한 전부입니다).

제 3 자용 BDC 모델을 설계하는 것이 시나리오의 모호함을 나타내지 않아도되지만 이러한 문제를 극복하는 방법에 대한 정보 나 지원을 찾을 수 없습니다.

누구나 어떤 조언이 있습니까?

답변

1

이 문제도 발생했습니다. BDC 모델을 WSP로 패키징하고 WSP를 통해 배포하고 싶습니다. 유감스럽게도 (사용자가 지정한 것처럼) BDC 모델에는 환경별로 구성해야하는 특정 환경 정보가 들어 있습니다.

우리가 착수 한 것은 다른 BDC 모델을 유지하고 WSP로 패키징하는 대신 가져 오는 것입니다. 그것의 소리에서, 당신은 설치할 때 특정한 환경 정보를 요구할 필요가 있고 어떻게 든 그것을 사용합니다.

+0

팀의 접근 방식을 복용하고 WSP 패키지를 사용하지 않는, 당신은 단지 .bdcm 파일을 다음 느슨한 있나요? 그런 다음 PowerShell 스크립트를 실행하여 가져올 수 있습니까? – Grank

+0

저는 최근에 중앙 관리에서 이것을 구성 할 수 있다는 것을 알았습니다. 또한이 정보가 포함 된 모델에 대한 별도의 리소스 파일을 유지 관리 할 수도 있습니다. 중앙 관리에서 BCS 서비스 앱으로 이동합니다. 오른쪽 상단의 드롭 다운에서 "외부 시스템"을 선택하십시오. 외부 시스템을 클릭하십시오. 그런 다음 외부 시스템 인스턴스를 클릭하십시오. –

+0

모든 항목이 포함 된 .bdcm 파일을 가져 오기 위해 매개 변수화 된 PowerShell 스크립트를 작성했습니다. 이 같은 흥미로운 일을 할 수 있다는 장점이 있었다 : 필요한 경우 BDC 서비스 응용 프로그램을 작성, BDC 서비스가 실행 보장, 모델에 연결 문자열을 쓰기 보안 저장소 서비스 실행을 위해 필요한 경우 보안 저장소 서비스 응용 프로그램을 작성, 보안 저장소를 만들 서비스 응용 프로그램 프록시가 필요한 경우 SITEURL가 하드 코딩이라는 문제는 ... 모델의 모든 개체에 대한 :) – Grank

0

배포 할 때 BDC를 특정 siteURL에 배포하려는 경우 솔루션을 볼 때 bcd 모델의 프로젝트 폴더로 이동하고 폴더의 속성에서 "Feature Properties" .

elipsis를 클릭하여 속성을 확장하고 "SiteUrl"이라는 제목을 추가하고 배포 할 사이트의 루트 (예 : "http : // spsite")로 설정합니다.

로컬 사이트 대신 해당 사이트에 배포됩니다.

+0

을 외부 목록을 필요한 경우, 갱신, 키를 보안 저장소 서비스 대상 응용 프로그램을 만들 메타 데이터 저장소에 대한 사용 권한을 설정, 생성 패키지화 된 WSP에 포함되어 개발자에게 알려지기로되어 있지 않습니다. 고객에게 적합하다고 판단되는 SiteUrl에 설치하기 만하면됩니다. – Grank

1

두 가지 방법이 사용 수 :

  1. 당신이 (대신 LobSystem 유형으로 DotNetAssembly의)는 "사용자 정의"조립 유형을 사용하는 경우, 당신은 당신이 속성을 변경할 수 있도록 IAdministrable을 구현할 수 있습니다 (LobSystem 또는 LobSystemInstance)를 중앙 관리에서 선택합니다. IAdministrable이 구현 되더라도 DotNetAssemblies에서는 작동하지 않는 것 같습니다.

  2. 다른 방법으로는 리소스 파일을 가져 와서 속성을 변경할 수 있습니다. 가장 쉬운 방법은 모델을 가져온 다음 리소스 파일로 내보내고 변경해야하는 속성으로 파일을 편집하는 것입니다. 그런 다음 bdcr (리소스) 파일을 가져 오면 속성이 변경되었다는 표시가 나타납니다.

1

Advanced Installer이 이에 대한 일부 지원을 제공합니다. 기본적으로 XML 편집기를 사용하면 매니페스트 파일에 하드 코딩 된 값 대신 Windows Installer properties을 사용할 수 있습니다. 내가 생각할 수있는

다른 솔루션은 파일 설치 후 수정할 custom action을 사용하는 것입니다.

어느 쪽이든,이 MSI 패키지와 같은 복잡한 설치가 필요합니다. ClickOnce는 지원하지 않습니다.

+0

고급 설치 프로그램을 이용해 주셔서 감사합니다. – Grank

0

여기서는 SharePoint 2010, deploying a BCS Model using a farm property bag to have a dynamic siteurl 에있는 지침을 사용하여 맞춤형 피처 수신자를 구현했습니다. 기능 활성화 중에 사이트 URL이 발견 되었기 때문에 모든 환경에 배포 할 수 있습니다.

+0

미래에 원본 페이지가 사라질 경우를 대비하여 귀하의 게시물에 솔루션의 요약을 포함하면 (참고로 제공된 링크 포함) 유용 할 것입니다. –