2009-03-13 4 views
3

.NET 3.5로 작성된 응용 프로그램이 있습니다. 사용자가 .NET 3.5를 설치하지 않고 실행하면 볼 수있는 것을 제어하고 처리되지 않은 예외 스택 추적에 비해 이해할 수있는 메시지 (.NET 3.5에 대한 링크 포함)를 제공하려고합니다. 그러나 실제로 .NET 3.5를 사용하지 않으면 응용 프로그램이 어떻게 제어 할 수 있습니까?존재하지 않는 .NET Framework 버전을 사용하여 .NET Framework 버전을 안전하게 확인하는 방법은 무엇입니까?

답변

2

Wix 또는 Visual Stuido 설치 프로젝트와 같은 설치 기술을 사용하여 설치 중에 특정 .NET Framework 런타임과 같은 소프트웨어의 모든 필수 구성 요소가 있는지 확인하는 것이 좋습니다. 그렇지 않다면 설치하거나 적어도 사용자에게 어디서 무엇을하고 다음에 할 것인지 알려주십시오.

+0

설치 프로그램을 원했기 때문에 Wix를 사용하기 시작했습니다. 프로젝트 유형은 SharpDevelop와 함께 제공되었습니다. 나는 그것이이 문제를 부적절하게 만들 것이라는 것을 깨닫지 못했다. – CrashCodes

+0

오. Wix 프로젝트에서 .net 3.5를 확인하기 위해해야 ​​할 특별한 것이 있습니까? – CrashCodes

+0

NM. 그것을 발견 : http://wix.sourceforge.net/manual-wix3/check_for_dotnet.htm – CrashCodes

4

적어도 .NET의 일부 버전이 설치되어 있다고 가정합니까?

수표를 만들기 위해 모든 버전과 호환되도록 작은 로더를 작성할 수 있습니다.

또는 .NET이 설치되어 있지 않으면 간단한 배치 프로그램을 찾았습니다 (원하는 경우 C++에서 쉽게 수행 할 수 있지만).

@ECHO OFF 
SET FileName=%windir%\Microsoft.NET\Framework\v1.1.4322 
IF EXIST %FileName% GOTO Skip 
ECHO.You currently do not have the Microsoft® .NET Framework 1.1 installed. 
ECHO.This is required by the setup program for MyApplication. 
ECHO. 
ECHO.The Microsoft® .NET Framework 1.1 will now be installed on you system. 
ECHO.After completion setup will continue to install MyApplication on your system. 
ECHO. 
Pause 
SET FileName= 
Start /WAIT .\dotnetfx.exe 
Start .\Setup.exe 
ECHO ON 
Exit 
Tongue Tiedkip 
SET FileName= 
Start .\Setup.exe 
ECHO ON 
Exit 

This도 도움이 될 수 있습니다.

+0

정말로 그렇게 생각하지 마십시오. 또한 링크에 감사드립니다. – CrashCodes

+0

글쎄, 당신은 그냥 NET을위한 레지스트리를 확인하는 작은 C + + 응용 프로그램으로 로더를 작성할 수 있습니다 ... 그러나 나는 그것이 호환성을 금후에 억제 할 수 있기 때문에 이것은 낙심시킬 것입니다. 누군가는 그것을 위해 배치 프로그램을 작성했습니다. – bdd

+0

음. 내가 질문을 표현한 방식 ... 나는 그것에 대해 연구해야한다. – CrashCodes

2

3.5가 설치되어 있어야하는 설치 프로그램을 사용할 수도 있습니다. 그러면 앱을 실행할 수 없으면 앱이 처음부터 사용자에게 표시되지 않습니다.

1

.NET 런타임을 확인하는 .NET EXE 파일이 필요합니다. 그것은 당신이 타겟 PC에 존재하는 어떤 것이라도 쓰여질 수 있습니다. 예를 들어, Windows 2000 이상을 대상으로하는 경우 Visual Basic 6.0 런타임이 있으므로 설치 프로그램이 항상 .NET EXE 파일을 시작하기 전에 런타임을 확인하는 Visual Basic 6.0 시작 응용 프로그램을 시작할 수 있습니다. 더 좋은 방법은 Windows API 이외의 런타임에 의존하지 않는 C++ 응용 프로그램을 작성하는 것입니다.

관련 문제