2011-02-12 6 views
8

현재 Windows Update를 통해 대부분의 가정용 컴퓨터에 제공 될 버전이므로 .NET 4 Client Profile 용 응용 프로그램을 개발 중입니다..NET Framework 4 클라이언트 프로필 + System.Web.dll?

그러나이 버전에없는 System.Web.dll에 대한 참조를 추가 할 수 없습니다. 어떻게해야합니까?

내 응용 프로그램과 함께 System.Web.dll을 배포하는 것이 좋습니까? 그렇지 않으면 작동하지 않습니까? HTTP 연결과 모든 것이 필요하므로 해결 방법으로 응용 프로그램을 수정할 수 없습니다. 내 응용 프로그램을 .NET 4 (클라이언트 프로파일 없음)로 타겟팅하고 있습니까? 아니면 Client Profile 만있는 컴퓨터에서 작동하지 않습니까?

+3

**'System.Web.dll'을 프로젝트와 함께 독립 실행 형 파일로 배포하지 마십시오. ** 사용자가 전체 .NET Framework를 설치하도록 요구하십시오. 설치자에게이 내용을 포함 시키십시오. 아무도 신경 쓰지 않을 것입니다. –

답변

5

NET 4 클라이언트 프로파일,이

별로 Windows Update를 통해 가장 가정용 컴퓨터에 존재합니다 버전으로. .NET 4 (클라이언트 프로파일이든 아니든)는 기본적으로 모든 Windows 이전 설치에 존재하지 않습니다. 예를 들어 Windows 7에는 .NET 4.0이 아니라 .NET 3.5 SP1이 제공됩니다. 창 업데이트가있을 수 있지만 선택 사항입니다.

따라서 전체 .NET 4 프레임 워크를 대상으로 할 수도 있습니다.

운영 체제와 .NET Framework 버전 간의 연결은 here입니다. 체크 표시는 버전을 즉시 사용할 수 있음을 나타내며 더하기 기호는 버전을 설치할 수 있음을 나타냅니다.

또한 4.5, 4.6 및 4.6.1은 모두 적절한 위치에서 업데이트되므로 해당 시스템 중 하나라도 4.0으로 간주되는 시스템입니다.

+0

나는 그 때 오해 했음에 틀림 없다 - 감사합니다. – pimvdb

+1

"선택적 업데이트"에서 확인할 수 있습니다. 그리고 그것은 afaik 4.0 클라이언트 프로파일입니다. –

2

.NET 4.0 클라이언트 프로파일이 아니라 .NET 4.0을 목표로한다면 prerequisite으로 추가해야합니다. 이렇게하면 응용 프로그램을 설치할 때 응용 프로그램을 설치할 수 있습니다.

.NET 4.0 클라이언트 프로필을 실행하는 경우에도 Sockets을 사용할 수 있습니다. 이들은 System.Net에 있습니다.

System.Web 네임 스페이스 공급 클래스와 브라우저와 서버 간의 통신을 가능하게하는 인터페이스 : 다음 적용 할 때 System.Web를 원한다. 이 네임 스페이스에는 현재 HTTP 요청에 대한 광범위한 정보를 제공하는 HttpRequest 클래스가 포함되어 있습니다. 가 클라이언트에 HTTP 출력을 관리하는 HttpResponse 클래스. HttpServerUtility 클래스. 은 서버 쪽 유틸리티 및 프로세스에 대한 액세스를 제공합니다. System.Web 에는 쿠키 조작, 파일 전송, 예외 정보 및 출력 캐시 제어에 대한 클래스가 포함되어 있습니다.

+0

'System.Net.dll'을 추가 한 후에도'HttpCookieCollection' 유형을 찾을 수 없다는 오류가 나타납니다. 어쨌든, 내 응용 프로그램에 따라'System.Web.dll'을 배포 할 수 있습니까? – pimvdb

+0

다른 종속성도있을 수 있습니다. 클라이언트 프로파일 대신 대상 프레임 워크를 .NET 4.0 (전체)으로 변경하십시오. –

2

System.Web.dll 사본을 문제가 해결되지 않는 클라이언트에 배포하는 경우에도 마찬가지입니다. 그리고 문제는 .NET 4 클라이언트 프로파일 용으로 컴파일 된 어셈블리에서 클라이언트가 아닌 .NET 4 프로파일 용으로 컴파일 된 어셈블리에 연결할 수 없다는 것입니다. 유일한 해결책은 클라이언트 프로파일이 아닌 어셈블리를 대상으로 지정하는 것입니다.

MSDN Page about .NET Framework Client Profile.

2

그냥 HttpWebRequest를를 사용하고자하는 경우, 그것은 여기

닷넷 (4)에 대한 클라이언트 프로파일에서 사용할하면, 바로 닷넷 4 클라이언트를 사용하여 새 콘솔 응용 프로그램을 만들 시도 할 수 있습니다 예입니다 Profile.cs에 프로파일 링하여 붙여 넣기 ...

using System; 
using System.IO; 
using System.Net; 

namespace ConsoleApplication3 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var request = WebRequest.Create("http://google.com"); 
      var response = request.GetResponse(); 
      using (var s = response.GetResponseStream()) 
      using(var sr = new StreamReader(s)) 
      { 
       Console.Write(sr.ReadToEnd()); 
      } 

      Console.ReadKey(); 
     } 
    } 
} 

사용자 의견 중 하나에서 HttpCookieCollection에 대해 질문했습니다. HttpWebRequest는 CookieContainer를 사용하여 쿠키를 저장하는 것으로 보입니다.

관련 문제