2012-12-17 1 views
0

2 개의 Windows 컴퓨터가 있습니다. Machine1에는 Visual Studio 2010이 있습니다. Machine2에는 Visual Studio 또는 .NET Framework SDK가없는 .NET Framework 4.0 클라이언트 프로필 만 있습니다.VS 및 .NET Framework SDK없이 csc.exe로 컴파일

컴파일 한 간단한 C# 테스트 (test.cs는 "System.Data를 사용하여;"포함) :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:exe test.cs 

그것은 머신 1에서 잘 작동합니다. 나는 현재 디렉토리에 "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Data.dll"를 복사

test.cs(2,14): error CS0234: The type or namespace name 'Data' does not exist in 
     the namespace 'System' (are you missing an assembly reference?) 

하지만 여전히 실패 그러나이 머신 2에 실패했습니다. 컴파일

추가 "/r:system.data.dll는"작동합니다

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /r:system.data.dll /target:exe test.cs 

당신이 이유를 아십니까?

+0

은 모두 32 비트 시스템 또는 둘 다 64 비트 시스템입니까? 또는 하나의 32 비트이고 다른 하나는 64입니까? – AssaultingCuccos

+0

둘 다 64 비트 Windows 2008입니다. – karlhou

답변

1

컴파일러는 기본 컴파일 옵션이 포함 된 파일 인 csc.rsp이라는 파일을 자동으로로드하려고 시도합니다./noconfig 옵션으로 컴파일하지 않는 한. 이 파일에는 일반적인 .NET Framework 어셈블리에 대한 여러 참조 옵션이 포함되어 있으며 System.Data.dll도 그 중 하나입니다.

모든 컴퓨터에 csc.rsp 파일이 있습니다.이 파일은 현재 사용중인 C : \ Windows \ Microsoft.NET \ Framework \ V4.0.30319에 있습니다.

그래서 그 파일이없는 컴퓨터를 사용하고있는 가능성이 매우 높습니다. 클라이언트 프로필에만 해당되는지는 모르겠지만 항상 피해 왔습니다. 그러나 Windows 탐색기로 신속하게 확인하면 힌트가 주어집니다.

+0

고마워요. 그것은 이유입니다. 또한 "csc.rsp"와 "vbc.rsp"가 [MSDN 블로그 중 하나] (https://blogs.msdn.com/b/jgoldb/archive/)에서 Client에서 Extended (Full)로 옮겨졌습니다. 2010/04/12/what-s-new-in-net-framework-4- 클라이언트 프로필 -rtm.aspx? Redirected = true) – karlhou

0

.NET 클라이언트 프로필은 클라이언트 (사용자 인터페이스) 응용 프로그램을위한 .NET의 축소 버전입니다. 전체 .NET에 제공된 모든 어셈블리 및 클래스가 클라이언트 프로필에있는 것은 아닙니다. 두 가지 모두에서 작동하는 응용 프로그램과 응용 프로그램을 작성하려면 Client Profile에있는 클래스 및 어셈블리 (하위 집합이기 때문에)로만 자신을 제한해야합니다.

당신은 그것을 더 편리 단순히 .NET 4.5로, 그 2

공지 사항도 시스템에서 전체 .NET을 설치 찾을 수 있습니다, 클라이언트 프로파일은 더 이상 존재하지 않습니다.

+0

"/r:system.data.dll"을 추가 한 후에 정상적으로 작동하는 것은 아닙니다. – karlhou

관련 문제