0

저는 전임 프로그래머가 아니지만 제 작업을 지원하는 도구를 만들기 위해 약간의 작업을해야합니다. 이제 배포해야하는 애플리케이션을 작성했습니다.Visual Studio 2012에서 누락 된 배포 프로젝트 유형

구성시 '로컬'폴더의 파일을 변경해야하므로 "ClickOnce"를 사용하고 싶지 않습니다. 내 이해는 빌드 메뉴에서 게시 옵션을 사용하면 "ClickOnce"를 사용하고 있다는 것입니다.

내 연구에 따르면 "솔루션에 하나 이상의 배포 프로젝트를 추가하여이 작업을 수행 할 수 있습니다." 그런 다음 MSDN에 "프로젝트 추가"와 "결과 새 프로젝트 추가 대화 상자에서 설치 및 배포 프로젝트 폴더를 선택해야합니다."라는 내용이 나와 있습니다.

문제는 그런 옵션이없는 것입니다.

누군가가 이것이 왜 그런지, 그리고 내가 어떻게 고쳐야하는지에 대해 밝힐 수 있습니까? 나는 반기를 인터넷 검색에 썼고, 앞으로 나아갈 길은 생각해 내지 못했습니까?

환경 : 비주얼 스튜디오 2012 익스프레스 Windows 바탕 화면을 위해 다음과 같이 프로젝트 및 시스템의

내역은 다음과 같습니다.
현재 프로젝트 : Windows Form 응용 프로그램.
Op Sys : Windows 7 Professional.

답변

1

정확한 조언을 구할 수 있지만 올바른 것은 이전에 읽고 있던 자습서입니다. 아마도 Visual Studio 2010을 가리킬 것입니다.

That option has been removed in VS 2012. 설치 프로그램을 작성하려면 대체 도구를 사용해야합니다. 예를 들면 :

0

필자는 Wix #를 살펴 보도록 강력히 권합니다. http://www.codeproject.com/Articles/31407/Wix-WixSharp-managed-interface-for-WiX을 참조하십시오. C#에서 코드를 작성하는 경우 Wix #이 코드는 아마도 가장 간단하고 편안한 스킬로 추가 할 수 있으며 무료이며 사용중인 Visual Studio 환경에 직접 통합됩니다.

윅스 번호에 대한 CodePlex의 홈 페이지에서

더 많은 정보 : 윅스 번호는 아마도 사업은 "포장 및 배포"에 대한 최선의 대체 자신의 응용 프로그램을 배포하는 기능 Windows Installer MSI를 만들 필요가 C#을 개발자의 http://wixsharp.codeplex.com/

입니다 VS2012로 시작하는 Visual Studio에서 Microsoft가 제거한 유형. Wix는 WiX (Windows Installer Xml) 도구 세트의 C# 프런트 엔드입니다. Wix #을 사용하면 C# 언어로 완전한 Windows Installer MSI를 작성할 수 있습니다.

Wix #은 광범위한 설치/배포 시나리오에 유용하며 지속적인 통합 시나리오에 적합합니다. Windows 데스크톱 응용 프로그램을 배포하고, Windows 서비스를 설치하고, ASP.NET 웹 사이트를 설치하고, 더 많은 유형의 설치를 수행하는 Wix # 예제가 있습니다.

Windows 7에 응용 프로그램을 설치할 필요가 있다는 의문이 제기되었습니다. Wix #은이 환경을 지원하고 일반적인 설치 프로그램 요구 사항을 처리하며 간단한 프로젝트를위한 Wix # 설치 프로그램 코드는 실제로 간단합니다.좀 더 복잡하고 고급 기능이 필요한 응용 프로그램 설치의 경우 Wix #은 필요할 때 전체 WiX Toolset의 성능을 활용할 수 있습니다. 예를 들어 .NET 응용 프로그램을 설치할 때 일반적인 요구 사항은 응용 프로그램 exe 및 dll 파일을 설치하고 일부 .NET 구성 파일 및/또는 레지스트리 항목을 대상 시스템에 맞게 조정하는 것입니다.

다음은 대상 시스템에 응용 프로그램을 설치하고 일부 구성 파일을 수정하는 간단한 Wix # 설치 프로그램의 C# 코드 예제입니다. 이 예에서는 "TailorMyConfig.exe"라는 유틸리티 (예 : ConfigurationManager.AppSettings 루틴을 사용하는 간단한 C# 프로그램)를 작성한 것으로 가정하고 앱과 함께이 exe를 배포하고 있습니다.

using System; 
using System.Windows.Forms; 
using System.Diagnostics; 
using Microsoft.Deployment.WindowsInstaller; 
using WixSharp; 

class Script 
{ 
    static public void Main(string[] args) 
    { 
     var project = new Project("MyProduct", 
          new Dir(@"%ProgramFiles%\My Company\My Product", 
           new File(@"Files\Bin\MyApp.exe"), 
           new File(@"Files\Bin\TailorMyConfig.exe")), 
          new ManagedAction("UpdateConfigFile")); 

     project.Id = new Guid("6f330b47-2577-43ad-9095-1861ba25889b"); 

     Compiler.BuildMsi(project); 
    } 
} 

public class MyCustomAction 
{ 
    [CustomAction] 
    public static ActionResult UpdateConfigFile(Session session) 
    { 
     if (DialogResult.Yes == MessageBox.Show("Config file update ready to run.\n Update config file(s) now?", 
               "Config Tailoring Utility", 
               MessageBoxButtons.YesNo)) 
     { 
      Process.Start("TailorMyConfig.exe", "Run utility to tailor config file to current system"); 
     } 
     return ActionResult.Success; 
    } 
} 

WiX XML 기능을 사용하여 구성 파일을 수정하는 "더 나은"방법이 있다는 것에 유의하십시오. 간단히하기 위해 위의 예에서는 구성 파일을 수정하기 위해 사용자 지정 작성 C# exe 유틸리티를 사용했습니다. WiX XML 기능을 대신 사용하는 것이 좋습니다. Wix # 기술인 "XML injection"을 사용하여 거의 모든 WiX XML 기능을 Wix # 설정에 직접 통합 할 수 있습니다.

위크 #은 WiX XML 구문을내는 C# 프런트 엔드임을 기억하십시오. Wix #가 WiX XML (wxs 파일)을 내 보낸 후에, 그 wxs 파일은 추가 WiX XML 기능을 삽입하기 위해 쉽게 후 처리 될 수 있습니다. 그런 다음 결과로 생성 된 wxs 파일은 WiX Toolset에 의해 MSI로 컴파일됩니다. 윅스 # (C#을) 설치에 윅스 XML 기능을 통합하는 XML 주입을 사용하는 예를 들어

, 그 질문에 여기 In Wix#, how to avoid creating a physical folder on the target system, when deploying only registry entries? 을 찾습니다 "WixSourceGenerated"에 대리인을 접선의 기술을 사용하는 내 대답을 참조 행사.

그런 다음이 XML 삽입 방식을 사용하여 구성 파일 편집을 수행 할 WiX XML을 설치 프로그램에 삽입 할 수 있습니다. 설정 파일을 수정하기위한 전형적인 WiX XML의 예는 다음과 같습니다. How to modify .NET config files during installation?

또 다른 일반적인 설치 프로그램 요구 사항은 대상 시스템에서 Windows 레지스트리 항목을 추가하거나 수정하는 것입니다. Wix #는 "RegValue"클래스를 사용하여 직접 지원합니다. Wix #을 사용할 때 장점은 레지스트리 항목을 사전 설치 상태로 제거/되돌리기를 포함하여 무료 "제거"기능을 완벽하게 얻을 수 있다는 것입니다. 이는 WiX Toolset 및 Windows Installer 기술을 기반으로 구축 된 Wix #의 자연스러운 결과입니다. 레지스트리 전용 Wix # 인스톨러의 예는 다음과 같습니다. In Wix#, how to avoid creating a physical folder on the target system, when deploying only registry entries?

Wix # 접근법은 제 환경에서 매우 유용하며, 익숙한 C# 스킬 셋을 사용하여 복잡성을 완전히 제거하지 않고도 익숙한 C# 스킬 셋을 사용할 수 있습니다. WiX XML 설치 프로그램 기술.

관련 문제