2012-10-19 6 views
0

이것은 내 첫 번째 Visual Studio 2010/SharePoint 2010 비주얼 웹 파트이며 NuGet을 처음 사용했기 때문에 눈이 멀었습니다. fwiw, SP2010 용입니다. 나는 셰어 포인트 대신에 여기에서 묻고있다. 스탁 익스체인지는 VS 질문이 더 많을 것으로 판단된다.VS2010, SP2010 : web.config에 NuGet 패키지가 추가되지 않았습니다.

VS2010에서 SP2010 비주얼 웹 파트 프로젝트가 있습니다. 그것은 깨끗한 디버그 및 기본 "Hello World!"보여줍니다. 바라는대로. VisualWebPart1UserControl.ascx.cs를 보면, 내가 가지고있다.

using System; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using Microsoft.SharePoint; 

namespace VisualWebPartProject1.VisualWebPart1 
{ 
    public partial class VisualWebPart1UserControl : UserControl 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      SPSite site = SPContext.Current.Site; 
      SPSite.UsageInfo usage = site.Usage; 
      foo.Text = "Hello World!"; 
     } 
    } 
} 

지금까지 그렇게 좋았다. 이제이 페이지에서 정말로하고 싶은 일은 추한 날짜/시간 작업을 포함하므로 Google에서 NuGet 패키지 인 "TimePeriodLibrary.NET"을 검색합니다. VS2010에서 작동하도록 NuGet config'd를 얻었고 패키지를 프로젝트에 추가합니다. References에 패키지 refeerences가 추가 된 것을 볼 수 있습니다. 나는이 때

문제는 온다 :

using System; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using Microsoft.SharePoint; 
using Itenso.TimePeriod; 

namespace VisualWebPartProject1.VisualWebPart1 
{ 
    public partial class VisualWebPart1UserControl : UserControl 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      SPSite site = SPContext.Current.Site; 
      SPSite.UsageInfo usage = site.Usage; 

       TimeRange timeRange1 = new TimeRange(
       new DateTime(2011, 2, 22, 14, 0, 0), 
       new DateTime(2011, 2, 22, 18, 0, 0)); 
       foo.Text = "TimeRange1: " + timeRange1; 
     } 
    } 
} 

괜찮아 보이지만, 내가 디버깅 할 때, 내가 얻을 :

"Could not load file or assembly 'Itenso.TimePeriod, Version=1.4.11.0, Culture=neutral, PublicKeyToken=d7f23b760ed5c748' or one of its dependencies. The system cannot find the file specified.":"Itenso.TimePeriod, Version=1.4.11.0, Culture=neutral, PublicKeyToken=d7f23b760ed5c748" 

는 NuGet의 첫 사용 인 (당신이 할 수있는 다른 최초의 사이에 말하자면, 나는 web.config를 수정하고 기본적으로 '작동하게 만든다'는 인상을 받았다. 난 필사적으로 웹 응용 프로그램의/BIN 폴더에 필요한 .DLL 파일을 수동으로 끌어 오려고했지만 그 방법도 작동하지 않았습니다.

나는 그것을 인정할 것이다, 나는 곤란하다. 어떤 도움을 주시면 감사하겠습니다.

답변

1

나는 내 자신의 질문에 답하는 것을 싫어하지만, 나는 그것을 얻었습니다. http://jussionsharepoint.com/index.php/2012/02/08/using-global-assembly-cache-tool-gacutil-exe-effectively/ .dll을 찾은 다음 gacutil.exe/i을 사용하여 GAC에 설치했습니다. 그 후 모든 것이 원하는대로 작동했습니다. 나는 이것이 원하는 결과를 얻는 "올바른"방법이라고 위임 적으로 말할 수는 없지만 그렇다고 볼 수 있습니다. 저는 지역 사회가 전달하고자하는 모든 지혜에 개방적입니다. 이것이 성공하기위한 최선의 방법이 아니라면 그렇게해야합니다.

0

당신이 바로 기준을 선택하고 속성을 클릭 한 "지역에 복사"로 빌드 작업을 설정해야합니다 (또는이 같은)을 (!) 참고로

는 nuget 매니저는 너무 패키지 내부의 작업을 수행합니다 거의 확실하게 뭔가 잘못되었을 때 관리자의 잘못이 아닙니다.

+0

내가 보았고 "로컬 복사"가 이미 "True"로 설정되었습니다. 단지 그것이 중요한지보기 위해서, 나는 그것을 "False"로 뒤집어서 Debug를 다시 시도했다. 차이 없음. 아하. –

+0

라이브러리로 볼 때 종속성이 없으므로 빌드시/bin/폴더에 추가되었는지 확인하고 문제가 지속되면/packages/폴더에서 실제 .dll을 복사 해보십시오 (솔루션 루트/패키지/패키지/[...]) . 문제가 지속되면 web.config에서 해당 문제를 제거하십시오. 그래도 문제가 지속되면 dll을 다운로드하여 수동으로 bin 폴더에 붙여 넣으십시오. 그것은 모든 경우를 포함해야합니다! –

+0

그것도 시도했다. 불운. 프로젝트와 관련된 모든 DLL을 가져 와서 BIN 폴더로 가져 왔습니다. –

관련 문제