2013-01-16 1 views
1

나는 Visual Studio를 사용하여 만든 exe ​​및 dll을 포함하는 설치 프로그램을 만들었습니다. 코드를 추가 할 수 있습니까?C# Installer에 코드를 추가하는 방법

예제 설치시 3-4 줄의 코드 만 실행하면됩니다.

1 고유 키와 함께 데이터베이스에 mac 주소 추가를 가져옵니다.

마찬가지로 제거시 데이터베이스에서 mac 주소를 제거하십시오.

기본 설치 프로젝트를 사용하여 현재 시나리오에서 가능합니까?

+0

어떤 MAC 주소입니까? 기계에는 여러 네트워크 어댑터 (실제 및 가상)가있을 수 있으며 모두 다른 주소를 갖습니다. 그리고 누군가가 네트워크 어댑터를 교체하여 하나 이상의 MAC 주소를 변경할 수도 있습니다. –

+0

@Damien_The_Unbeliever는 Mac 주소를 주로 걱정하지 않고 설치 프로그램에 코드를 추가하는 것이 었습니다. – confusedMind

+0

나는이 문제를 "mac 주소를 얻은 다음 적절한 설치 시간에 데이터베이스에 추가/제거"하는 것으로 나누면이 부분을 집중적으로 살펴 보려고합니다. 현재이 솔루션이 작동하지 않는 이유에 대한 더 큰 문제는 현재 무시하고 있습니다. –

답변

2

설치자를 위해 CustomAction을 사용해야합니다. 이것으로 프로그램을 실행하거나 스크립트를 작성하거나 레지스트리 키를 쓸 수 있습니다. (VB.NET에 있지만 쉽게 번역) 설치하는 동안 메시지를 표시하는 사용자 정의 설치 클래스를 사용하여 Here's a simple example :

Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary) 
    MyBase.Install(stateSaver) 
    Dim myInput As String = Me.Context.Parameters.Item("Message") 
    If myInput Is Nothing Then 
    myInput = "There was no message specified" 
    End If 
    MsgBox(myInput) 
End Sub 

당신은 완전히 샘플을 재현하는 링크의 단계를 수행해야합니다.

+0

내 요구 사항에 대한 완벽한 솔루션에 감사드립니다. – confusedMind

+0

[업데이트 된 버전] (https://msdn.microsoft.com/en-us/library/9cdb5eda (v = vs.100) .aspx) –

0

.NET installer classes을 사용하고 기본 설정 프로젝트에서 연결합니다. 몇 가지 메소드를 오버라이드 한 다음 설치/제거시 호출됩니다. 이렇게하는 방법은 tutorial입니다.

많은 사람들이 .NET 설치 프로그램 클래스 (및 기본 설치 프로젝트)를 싫어하며 WIX 또는 InstallShield 기반 프로젝트를 사용하여 진정한 사용자 지정 동작을 구현합니다.

정확하게 수행하려는 작업과 원하는 작업에 따라 .NET 종속성도 도입됩니다. 예를 들어, .NET이 설치되어 있는지 확인중인 경우 .NET이 이미 설치되어 있지 않으면 .NET 사용자 지정 작업에서이 작업을 수행 할 수 없습니다.

사용자 지정 동작을 추가하는 것은 다소 미끄러운 슬로프입니다. 사람들이 설치 프로그램을 사용자 정의 할 수 있다는 것을 알게되면 더 많은 일을하도록 요청 받게 될 것입니다. 이 시점에서보다 유연한 도구 (WIX (오픈 소스) 또는 InstallShield ($))를 사용하는 것이 좋습니다.