카테고리 아카이브: SharePoint 개발

"하나 이상의 필드 형식은 제대로 설치 되지 않습니다에 대 한 이유 중 하나”

나 목록에 대해 CAML 쿼리를 않는 웹 파트를 어제 작은 tweak을 만들고 있었다.  변경, 그것을 배포 하 고 오류와 함께 맞 았:

3 주 Outlook 일기 예보 Webpart에서 예기치 않은 오류가 발생 했습니다.. 시스템 관리자에 게 문의 하십시오. 하나 이상의 필드 형식은 제대로 설치 되지 않습니다.. 이러한 필드를 삭제 하려면 목록 설정 페이지로 이동.

그래서 난 바로 Sharepoint는 나에 게 보고 하는 오류 CAML 쿼리 연결 하지 않았다 이전 또 다른 괴짜 문제를 직면 했다.  난 빠른 빙 검색을 했 고 고 이 유용한 블로그 게시물을 발견 에 의해 Sandeep Nahta  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

나쁜 쿼리는 같습니다.:

쿼리 합니다. = 쿼리 "<어디><그리고><Neq><FieldRef 이름 'Abbr' = / 그리고pan >>< 값 형식 '텍스트' = > SFNY </Value> < FieldRef 이름 'Abbr' = / >< 값 형식 '텍스트' = > SFIS </Value> </Neq> </And> </Where> ";><값 형식 '텍스트' =>SFNY</값><FieldRef 이름 'Abbr' = / 그리고pan >>< 값 형식 '텍스트' = > SFNY </Value> < FieldRef 이름 'Abbr' = / >< 값 형식 '텍스트' = > SFIS </Value> </Neq> </And> </Where> ";><값 형식 '텍스트' =>SFIS</값></Neq></그리고></어디>";

여기에 고정:

쿼리 합니다. = 쿼리 "<어디><그리고><Neq><FieldRef 이름 'Abbr' = / 그리고pan >>< 값 형식 '텍스트' = > SFNY </Value> < FieldRef 이름 'Abbr' = / >< 값 형식 '텍스트' = > SFIS </Value> </Neq> </And> </Where> ";><값 형식 '텍스트' =>SFNY</값></Neq><Neq><FieldRef 이름 'Abbr' = / 그리고pan >>< 값 형식 '텍스트' = > SFNY </Value> < FieldRef 이름 'Abbr' = / >< 값 형식 '텍스트' = > SFIS </Value> </Neq> </And> </Where> ";><값 형식 '텍스트' =>SFIS</값></Neq></그리고></어디>";

그래서, 이야기의 모 랄은: 당신의 CAML 올바른지 또는 괴짜 오류를 얻을 수 있는지 확인.

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

</끝>

SharePoint 2010 "배포에 갇혀 솔루션” 상태

SharePoint 팜에 솔루션을 배포 하려면 Powershell을 사용 하는 (h/t:  코리 로스 그리고 그의 블로그 게시물). 

그런 다음 중앙 관리에 갔다, 시스템 설정을 누른 다음 "관리 팜 솔루션" 액세스 농장 그리고 배포 하 내 (약간의) 실망, "배포"에 갇혀 있어.

서 여러 번 MSDN 포럼에이 문제를 본 적, 그래서 그것에 대해 꽤 긴장 했다입니다.  조금의 주위 검색 및 이 유용한 문서를 찾을 수합니다 (겉보기 unattributed 사람에 의해 http://www.resolutionsnet.co.uk/).  배포 작업 및 때 솔루션에 클릭을 취소, 3 4 명의 서버 팜에 솔루션 배포 성공적으로 했다 그것 내게 말했다.

잘못 된 서버에 갔다, 타이머 서비스를 중지 하 고 그것을 다시 시작 합니다.  Windows 서버 실제로 줬 서비스 명령에 응답 하지 못했습니다., 그래서 그 아픈 했다 하더군요.

이번에, 내가 갔을 때 다시 중앙 관리, 나는 문제 없이 배포할 수.

바라 건 대이 비트의 정보 일 하나 bind에 일부 도움이 될 것입니다..

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

하루 중 오류: "수 없습니다 지정한 어셈블리를 GAC에 추가”

조금 visual studio와 함께 싸우고 있다 했습니다. 2010 에 sp2010 솔루션 및이 오류를 얻고 있었다:

배포 단계 ' 솔루션 추가 '에서 오류가 발생 했습니다.: 오류: 지정된 된 어셈블리를 전역 어셈블리 캐시에 추가할 수 없습니다.: YourAwesomeDLLThat IAmJustNotGoingToInstallRightNow.dll

자체 GAC에 갔다 (c:\windowsassembly) 시도 하 고 제거 하 고 "파일 사용 에서" 오류가 있어.

Iisreset을 않았다, 거의 다운로드 sysinternals, 마침내 서비스 타이머 서비스를 중지, 그냥 폐쇄 하 고 visual studio 자체를 재개 하 고 마침내 밖으로 닫을 수 있게 되었다.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

신속 하 고 쉽게: VS 디버깅 2010 솔루션 배포

Visual Studio 2010 몇 번 배포 하는 동안 디버그 하드 오류를 보고합니다.  몇 가지 매우 거친 디버깅 할 수 있는 빠르고 쉬운 방법 자신의 명명 된 예외를 throw 하는 것입니다.  Visual Studio 출력 콘솔에 표시 됩니다..

코드의이 비트를 고려:

image

이 기능은 웹 응용 프로그램으로 범위가 지정 하는 경우, 사이트 null이 됩니다.  당신이 시도 하 고 사이트의 속성을 참조 하는 경우, 모호한 오류 거 야:

배포 단계 ' 솔루션 추가 '에서 오류가 발생 했습니다.: 개체 참조가 개체의 인스턴스로 설정 되지.

그러나, 경우 새 예외를 throw 하 고 문자열을 생성자에 전달, 약간 더 유용한 메시지를 받을:

image

그것은 원유 기술, 하지만 꽤 빠른 속도 간편한.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

타이머 작업 FeatureActivated 및 기능 범위

난 누군가가 나에 게는 타이머 작업에 대 한 손으로 일부 코드를 사용 했습니다.  그래서 그것을 작성을 했다 그는 실제 기능 활성화 코드를 제공 하지 않았다면, 물론.  활용 앤드류 Connell의 유명한 블로그 게시물 주제에.

Visual Studio를 사용 하 2010 배포 오류와 함께 실패 보관 "배포 단계 '솔루션 추가'에서 오류가 발생 하는 고: 개체 참조가 개체의 인스턴스로 설정 되지 않습니다. "

너무 문자 그대로 그의 코드를 복용 했다.  웹 응용 프로그램 수준 기능을 범위 지정 했다, 같이:

image

결과적으로, 수신기에 전송 되는 속성은 웹 응용 프로그램에서, 사이트 모음이 아니라입니다.  끝에서, 코드를 다음과 같이:

공공 재정의 void FeatureActivated(SPFeatureReceiverProperties 속성)
{

    // 웹 응용 프로그램 범위 기능을 실행 하지, 그것은 절망에 이른다 미소
    // SPSite 사이트 속성 =.Spsite로 Feature.Parent;

    SPWebApplication wa 속성 =.Spwebapplication으로 Feature.Parent;

    만약 (워싱턴 = = null) 새 예외를 throw 합니다.("webapp2은 null입니다.");

    foreach (워싱턴에서 SPJobDefinition 작업입니다.JobDefinitions)
    {

        시도
        {
            만약 (작업입니다.이름 = = List_JOB_NAME)

                작업입니다.삭제();
        }
        catch (예외 e)
        {
            새 예외를 throw 합니다.("마커 2");
        } // catch exception e
    }

    // 설치 작업

    WeatherForecastTimerJob weatherForecastTimerJob =
        새로운 WeatherForecastTimerJob(List_JOB_NAME, wa);

    SPMinuteSchedule 일정 = 새로운 SPMinuteSchedule();
    일정입니다.BeginSecond = 0;
    일정입니다.EndSecond = 59;
    일정입니다.간격 = 5;
    weatherForecastTimerJob.Schedule = 일정;
    weatherForecastTimerJob.Update();

}

이륙 거리 키 그 때 기능을 웹 응용 프로그램 범위, SharePoint 기능 수신기에 전달 하는 Spfeaturereceiverproperties는 웹 응용 프로그램 수준 매개 변수가.  앤드류의 오래 된 블로그 항목을 사이트 모음 범위는 가정.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

Microsoft.SharePoint.ApplicationPages.Administration.dll은 어디에?

나는 Microsoft.SharePoint.ApplicationPages.Administration.dll를 참조 하는 visual studio 프로젝트를 손으로 했다.  그것은 내게 조금 찾을 나는 그것을 생각을 공유 하는 동안.  내 환경에, 에 위치 하 고 있습니다.:

c:\프로그램 파일 공통 파일 마이크로 소프트 파일 서버 extensions14configadminbin

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

CodePlex 프로젝트 – SP2010 탐색기

Sharepoint 기술 낮은 수준의 내용을 배울 하 지속적인 노력의 일환으로 2010, 내가 만든 한 "SharePoint 탐색기"도구의 일종입니다.  아이디어는 새롭 지 않다.  한 번 이상이 프로젝트를 사용: http://sharepointexplorer.codeplex.com/.  내 생각이 SharePoint 버전 사용 하 여 개체 모델을 제공할 수 있는 모든 저수준 세부 사항 표시 웹 파트 연결을 만드는 것입니다. 

이 블로그 게시물 자원 봉사자에 대 한 호출 뿐만 아니라 프로젝트의 두 발표로 제공합니다.  이 프로젝트에서 작업에 관심이 있다면, 이메일을 통해 알려 (galvin.paul@gmail.com) 우리는 밖으로 일할.

여기는 프로젝트: http://sp2010explorer.codeplex.com/

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

ASP에서 TreeNodeBinding 작업.NET Treeview 컨트롤

나는 곧 출시 될 것입니다 희망에 노력 하 고 CodePlex 표지에서 SharePoint 사이트를 탐색의 목적을 위해 공급자/소비자 연결을 통해 서로 게 이야기 하는 웹 파트의 좋은 통합 된 비트를 제공 하는 프로젝트입니다.  (이 확실히 전에 완료 되었습니다., 하지만이 만큼 아무것도 학습 프로젝트).  이 Sharepoint의 windows 탐색기 보기에 대 한 교체 해야한다는 2010 문서 라이브러리.

코드는 평소 재귀 Spweb의 아래로 전화 하 고 주어진 시작 SPLists 가리킵니다.  그 모든 통과 않는 개체는 다음과 같은 XML 문자열을 빌드:

<sitecollection url =’http://demo2010a:9090′>
 
<웹
     제목 =' 안녕하세요 세계 샌드 ' 
     서식 파일 =' 팀에서 신속 하 게 정리를 위한 사이트, 저자, 정보 공유 및, ㅋ ㅋ ㅋ ㅋ ㅋ '>

     <목록
        제목 ='BCC_Health_Services_FAQs’
        서식 파일 ='CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</목록>

     <목록
        제목 = 'BCC_Notifications' 
        서식 파일 'CustomList' = 
        listid =’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877 c-41 c 0-9063-b9612be80d5e’>
     </목록>

  </웹>

</sitecollection>

그 전에 XML은 그리고 다 청소를 기대합니다.

궁극적으로 최대 및 Treeview 컨트롤에 해당 정보를 얻을 싶어요.  정확 하 게 물건을 산 산 조각 지구.

여기에 했다 도전은 트리 뷰 트리를 통과 하는 대로 내 treenodes 직접 구축 하는 대신 XML 데이터 소스 제어에 연결 했다.  내가이 일부 있기 때문에 난 고의적으로 만드는 것 들 자신에 힘들어 (이것은 결국 학습 프로젝트) 그리고 일부 모호한 개념을가지고 있기 때문에 트리 노드 트리를 통과 하는 대로 구축 하는 긴 기간에 대 한 좋은 생각 되지 않습니다..

이 방식의 문제는 기본적으로이 출력을 보여줍니다 그래서 Treeview 컨트롤 "목록" 또는 "웹"와 같은 재미 있는 노드에서 좋은 특성에 대해 알고 하지 않습니다.:

 

image

그는 유용 하지 않습니다.  이것은 TreeNodeBinding 클래스 도움이 됩니다.  그것은 XML을 어떻게 해석 해야 Treeview 컨트롤에 게 이것을 사용할 수 있습니다.  여기에 예가입니다.:

tnb 새로운 TreeNodeBinding =();
tnb입니다.DataMember = "목록"; // 이것은 사이트에 대 한 xml에서 레이블.
tnb입니다.TargetField = "listid";
tnb입니다.ValueField = "제목";
tnb입니다.ToolTipField = "템플릿";

이 바인딩은 알려줍니다 treeview 발견 하는 경우는 <목록> xml 노드, Targetfield에 대 한 바인딩을 적용합니다, ValueField 및 Tooltipfield입니다.  5 월 애플 리 케이 션, 이러한 같이 지도:

  • TargetField: 노드 값에 클릭할 때, 이것은 Selectednode.value을 위해 무엇을 얻을 거 야입니다.  이것은 혼란된 with… 수
  • ValueField: 이것은 사용자에 게 표시 하려면 Treeview 원합니다.
  • ToolTipField: 도구 설명으로 XML에서 값.

트리 뷰의 데이터 바인딩 하는 Treenodebinding이 같은 출력 얻을 추가합니다:

 

image

이 모든 프로젝트에 계속 하 고 결국 Codeplex에이 올려 해야.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

사용자 지정 웹 파트에 연결할 텍스트 필드 필터

Sharepoint에서 필터 텍스트 필드에서에서 정보를 받을 싶 었 어 요 2010 에 내 사용자 지정 웹 파트.  사용 하 여 시도 이 MSDN 문서 기사 하지만 기준으로 중 고장 또는 난 그냥 하지 다음 그것은 올바르게.

조금 더 검색 설정 마이크 스미스 MSDN 기여 여기 (http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/72F1732A-7F93-441E-8644-2E82BBB153D9).

연결 가능한 웹 파트에 거기 밖으로 물건을 많이 하지만 마이크의 기사는 갈수록 간단.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

신속 하 고 쉽게: .NET C#에서 Gmail SMTP 서버를 사용 하 여 이메일을 보낼

이것은 정확 하 게 새로운 주제, 하지만 언제 그것을 할 필요가, "왜 나를 위해이 작동 하지 않습니다"을 많이 발견 하 고 너무 많은 직접 답변. 나는 누군가 이것을 유용한 발견 희망.

코드의 다음 비트는 그것을 내 자신의 gmail 계정을 사용 하 여 이메일을 보낼 것 이다, 첨부 파일 포함:

사용 하 여 System.Net.Mail;
사용 하 여 System.Net;

NetworkCredential loginInfo = 새로운 내용 NetworkCredential("[내 Gmail ID]", "[내 Gmail 비밀 번호]");
MailMessage msg = 새로운 내용 MailMessage();
msg입니다.=에서 새로운 내용 MailAddress("[M Gmail Id]@gmail.com");
msg입니다.To.Add(새로운 내용 MailAddress("paul.galvin@arcovis.com < cf 해시 스크립트 ="f9e31"유형 =" 텍스트/자바 스크립트 "> / *  * /"));
메시지입니다. 제목 = "테스트 infopath 개발 주제";
메시지입니다. 몸 = "<html><바디><강력한>강력한 메시지입니다.</강력한></바디></html>";
메시지입니다. IsBodyHtml = true;

foreach (문자열 aFile 에서 NIPFD입니다. GetAttachmentNamesAndLocations())
{
    메시지입니다. Attachments.Add(새로운 내용 첨부 파일(aFile));
} // 첨부 파일 추가.

SmtpClient 클라이언트 = 새로운 내용 SmtpClient("smtp.gmail.com");
클라이언트입니다.EnableSsl = true;
클라이언트입니다.해야 = false;
클라이언트입니다.자격 증명 = loginInfo;
클라이언트입니다.포트 = 587;
클라이언트입니다.EnableSsl = true;
클라이언트입니다.보내기(메시지);

느려 졌 나 몇 가지 주요 비트와 다른 관측 / 노트:

NetworkCredential loginInfo = 새로운 내용 NetworkCredential("sharepoint", "xyzzy");

  • 내 gmail 계정이 SSL을 사용 하도록 설정 하 고 그 문제가 아니.
  • 거기 밖으로 사용 하 여 어떤 포트에 어떤 충돌 정보. 내가 사용 하는 포트 587 그리고 그것은 나를 위해 괜 찮.
  • 내 경우에는, 나는 또한 첨부 파일을 보낼 필요가. NIPFD 개체는 어디 내 첨부 파일 알고 하는 방법. 그것은 완전히 경로 반환 (예를 들어. "c:\tempattachment1.jpg ". 내 테스트에서, 2 개의 첨부 파일을 했다 그리고 그들은 둘 다 괜 찮.

Visual studio를 사용 2008 이 코드를 작성 하려면.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

테크노 태그: ,,,