문제

Visual Studio에는 소프트웨어의 평가판 버전을 만들기위한 내장 도구가 있습니까? 어떤 도구가 작업을 수행 할 수 없다면?

.NET 플랫폼에서 시험판을 작성하기위한 모범 사례는 무엇입니까?

이러한 관행은 응용 프로그램 유형 (웹 응용 프로그램, Windows Forms Applications, DLL ECT)에 어떻게 의존 하는가?

도움이 되었습니까?

해결책

"시험"상태는 비교적 퍼지 개념입니다. "도구"를 구축 할 수 있도록 정확하게 지정하기가 어렵습니다.

어떤 옵션?

로컬로 설치 가능한 소프트웨어 :

  • 법적 제한. 전체 기능은 바로 출발하지만 사용자는 시험 기간이 끝난 후에는 윌링을 중단해야합니다. 기본적으로 신뢰 (개인 사용자의 경우) 또는 법적 기소 (회사 사용자)의 보호.

  • 제한된 기능. 사용자는 라이트 버전을 다운로드 할 수 있습니다. 그들이 전체를 찾기로 결정할 때마다 나머지 기능을 잠금 해제하는 라이센스 키를 요청합니다. 또는 정식 버전에 대한 비밀 다운로드 링크를 제공합니다. 더 좋은 점, 워터 마킹 된 바이너리를 만들면 소스에 대한 무단 사용/배포를 추적 할 수 있습니다.

웹 소프트웨어 :

  • 시험 또는 전체는 사용자 계정에서 활성화 된 기능의 문제입니다. 모든 사용자가 웹을 통해 애플리케이션에 액세스 할 수 있으므로 무단으로 설치할 소프트웨어 사본이 없습니다. 각 사용자는 자체 계정으로 작동하며 부여 된 기능 만 액세스 할 수 있습니다.

다른 팁

이것은 매우 잘 덮여 있습니다 Shareware 스타터 키트. 제한된 시험, 보안 활성화, 등록 및 페이팔 통합에 대한 코드가 있습니다. 적극 권장합니다. 그 바퀴를 발명하고 싶지 않습니다.

내가 당신에게 준 링크는 큰 것이 아닙니다. 다운로드를 얻으려면 라이센스를 클릭해야합니다. 해당 키트의 C# 특정 버전을 설명하는 링크를 더 이상 찾을 수 없습니다.

다음 스레드를 확인하십시오30 일 시행 재판을 구현합니다.

스레드 중 하나에 언급 된대로 시험판 기능을 구현할 수있는 툴킷이 있습니다.보호 도구를 복사하여 장치 수를 제한하십시오.

Visual Studio가 소프트웨어에서 시험판 기능을 구현하기위한 몇 가지 내장 도구를 제공하는지는 모릅니다.

Visual Studio 또는 .NET에는 라이센스 및 복사 보호를위한 내장 도구가 있습니다. 자신의 계획을 개발하거나 준비된 제도를 사용해야합니다.

모범 사례 및 팁은이 기사를 참조하십시오. 크립토 컨택을 사용하여 소프트웨어 해커를 방지하고 크랙 방지하는 8 가지 방법

면책 조항 : 나는 cryptolensing의 개발자 인 Logicnp Software에서 일합니다.

시험판 기능은 레지스트리에서 설치된 날짜를 읽고 모드가 시험 또는 유효한 경우 ...

이 클래스는 레지스트리 안팎에서 읽고 쓸 수 있습니다 ...

    static string Regname = "Registryname";
    public bool writeRegistryKey(string Key, string value)
    {
        try
        {
            Microsoft.Win32.RegistryKey key;

            key = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(Regname);
            key.SetValue(Key, value);
            key.Close();
            return true;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
            return false;
        }
    }

    public string readRegistryKey(string Value)
    {
        try
        {

            string keyValue = null;
            Microsoft.Win32.RegistryKey key;
            key = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(Regname);
            keyValue = key.GetValue(id).ToString();
            key.Close();
            return keyValue;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
            return null;
        }
    } 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top