2014-02-14 2 views
2

제목에 정확하게 묻지 않은 경우 사과드립니다. 묻는 방법이나 필요한 것을 무엇을 호출해야할지 모르겠습니다.미리 정의 된 설정으로 exe 생성

- C#으로 작성된 "TestApp"라는 간단한 응용 프로그램이 있다고 가정 해 보겠습니다. 내부 '클라이언트 ID'변수를 변경, 내가 새 클라이언트가있는 경우

int clientid = 123; 
string apiurl = "http://somesite/TestApp/api.php"; 

, 난 단지 그를 위해 새로운 특수 TestApp.exe을 작성해야합니다 : 해당 응용 프로그램 내부

, 나는 다음 변수를 암호.

이 과정을 자동화 할 수 있습니까? 그 변수를 자동으로 변경하고 프로세스 방해를하지 않고 exe 파일을 내보내려면?

  • http://download.cnet.com/2701-20_4-1446.html?tag=sideBar;downloadLinks [그것은 개의 정의 된 링크 특별한 .EXE를 작성합니다 -

    내가 생각/또는 내가 그것을 때문에 다음 인기있는 예제의 가능성이 있음을 확신하기 때문에

    나는이 질문 어디에서 실제 파일을 다운로드 할 것인가]

  • http://torrent2exe.com/ [토런트 이름이나 다운로드 크기와 같이 일부 맞춤 변수가 변경된 특수 .exe에 .torrent 파일을 포함하고 있습니다.]

다시 질문하지 않으면 사과하고, 나쁜 영어로 최선을 다해 사과드립니다.

답변

3

그래서 당신은 당신의 질문에 두 부분이 있습니다

앱 당신은 설정 변경을 만드는 과정을 자동화 할
  • 에 대한 클라이언트에 따라 프로그램 내부의 변수를 갖고 싶어
    1. .

      사용 AppSettings :


  • 사용자 지정 설정을 확인하십시오.

    먼저 System.Configuration 어셈블리에 대한 참조를 추가하십시오. 당신의 app.config 파일에서

    : 코드에서

    <configuration> 
        <appSettings> 
        <add key="ClientID" value="123" /> 
        <add key="ApiUrl" value="http://somesite/TestApp/api.php" /> 
        </appSettings> 
    </configuration> 
    

    는 설정을 읽을 수 있습니다 :

    using System; 
    using System.Configuration; 
    
    class Program 
    { 
        private static int clientID; 
        private static string apiUrl; 
    
        static void Main(string[] args) 
        { 
         // Try to get clientID - example that this is a required field 
         if (!int.TryParse(ConfigurationManager.AppSettings["ClientID"], out clientID)) 
          throw new Exception("ClientID in appSettings missing or not an number"); 
    
         // Get apiUrl - example that this isn't a required field; you can 
         // add string.IsNullOrEmpty() checking as needed 
         apiUrl = ConfigurationManager.AppSettings["apiUrl"]; 
    
         Console.WriteLine(clientID); 
         Console.WriteLine(apiUrl); 
    
         Console.ReadKey(); 
        } 
    } 
    

    More about AppSettings on MSDN


    이 설정의 생성을 자동화하기 위해 :

    이것은 모두 당신이 얻고 자하는 복잡한 정도에 달려 있습니다.

    • 프로젝트를 구축

      , 당신의 app.config 파일은 구성 파일을 작성하는 ConfigurationManager 클래스를 사용할 수 있습니다 TestApp.exe.config
    • 된다.
    • 또한, 사용자 정의 설정으로 구성 파일을 쓰고 빌드 동작의 일부로이를 실행하는 약간의 Exe를 작성할 수 있습니다. 응용 프로그램을 어떻게 전개 할 것인지에 따라 자동화를 수행하는 많은 방법.

    프로그래밍 app.config 파일의 appSettings는 섹션을 작성 빠른 예 : 빠른 답변

    public static void CreateOtherAppSettings() 
    { 
        Configuration config = 
         ConfigurationManager.OpenExeConfiguration("OtherApp.config"); 
    
        config.AppSettings.Settings.Add("ClientID", "456"); 
        config.AppSettings.Settings.Add("ApiUrl", "http://some.other.api/url"); 
    
        config.Save(ConfigurationSaveMode.Modified); 
    } 
    
    +0

    감사합니다. 그러나 독립 실행 형 .exe이기 때문에 실제로 어떻게 배포 할 수 있습니까? exe 안에 user.config를 자동으로 포함시킬 수 있습니까? – user3280998

    +0

    당신은 exe 안에 그것을 삽입하지 않습니다 - 그것은 항상 별도의 설정 파일입니다. 각 배포에 대한 구성 파일을 생성 할 수 있으며, 내 대답이 업데이트되었고 예제로 작업 중입니다. –

    +0

    @ user3280998 : 예제와 함께 업데이트 된 답변을 참조하십시오. 이렇게하면 실행하고 config를 생성하는 최선의 방법을 파악할 수 있습니다. 나는 당신의 프로젝트가 분명히 더 구체적이라는 것을 모른다. 그러나 나는 당신을 위해 몇 가지 옵션과 예제를 제시했다. –

    관련 문제