설치하지 않고 실행할 수있는 Visual Studio 애플리케이션을 배포하는 가장 좋은 방법


80

C # /. NET으로 상당히 간단한 응용 프로그램을 작성했지만 게시하는 좋은 방법을 찾을 수 없습니다. 사용자가 한 번만 실행하거나 몇 달에 한 번씩 실행하는 일종의 "도구"입니다. 이 때문에 실행을 위해 설치할 필요가없는 곳에 배포 할 수있는 방법이 있기를 바랍니다 (다운로드 후 바로 EXE 파일을 두 번 클릭하여 실행할 수 있음).

그러나 올바른 버전의 .NET, 라이브러리 등을 포함하려면 여전히 (어떻게 든) 필요하므로 올바르게 실행됩니다. ClickOnce를 사용할 때 이것이 포함된다는 것을 알고 있지만 여전히 사용자의 컴퓨터에 응용 프로그램을 설치합니다.

이렇게 할 수있는 방법이 있습니까?

편집-\ bin \ Debug

myAppName.application
myAppName.exe
myAppName.exe.config
myAppName.exe.manifest
myAppName.pdb
myAppName.vshost.application
myAppName.vshost.exe
myAppName.vshost.exe.config
myAppName.vshost.exe.manifest
extraLibrary.dll

뿐만 아니라 두 개의 폴더

app.publish
Resources

답변:


106

가능하고 믿을 수 없을 정도로 쉽습니다.

  1. 빌드 메뉴 또는 프로젝트 속성 → 게시 에서 애플리케이션 (예 : C 드라이브의 일부 폴더)을 "게시"합니다 . ClickOnce 응용 프로그램에 대한 설치 관리자가 생성 됩니다.
  2. 그러나 생성 된 설치 프로그램을 사용하는 대신 생성 된 파일 (EXE 파일 및 .config , .manifest.application 파일, DLL 파일 등)을 찾습니다. 모두 동일한 폴더에 있으며 일반적으로 bin\Debug프로젝트 파일 ( .csproj ) 아래에있는 폴더 입니다.
  3. 해당 폴더를 압축하고 ( * .vhost. * 파일과 app.publish폴더 (필요하지 않음) 및 .pdb 파일은 사용자의 시스템에서 직접 디버깅 (예 : 원격 제어)을 예상하지 않는 한 제외)하고 제공합니다. 사용자에게.

추가 이점은 ClickOnce 응용 프로그램으로서 실행하는 데 관리자 권한이 필요하지 않다는 것입니다 (응용 프로그램이 응용 프로그램 데이터 등에 사용할 폴더에 대한 일반 지침을 따르는 경우).

.NET의 경우 응용 프로그램에 설치되는 (또는 전혀) .NET의 최소 필수 버전을 확인하고 (대부분의 사용자는 이미 설치되어 있음) Microsoft 웹 사이트의 다운로드 페이지 링크가있는 대화 상자를 표시 할 수 있습니다. (또는 Microsoft 페이지로 리디렉션 할 수있는 페이지 중 하나를 가리 킵니다. 이렇게하면 Microsoft URL이 변경 될 경우 더욱 강력 해집니다). 작은 유틸리티이므로 사용자가 .NET을 설치해야 할 가능성을 줄이기 위해 .NET 2.0을 대상으로 지정할 수 있습니다.

효과가있다. 개발 및 테스트 중에이 방법을 사용하여 애플리케이션을 지속적으로 제거하고 설치하지 않아도되며 최종 애플리케이션이 실행되는 방식에 매우 가깝습니다.


2
감사합니다. 매력처럼 작동합니다! 모든 참조가 기본적으로 포함되어 있지 않기 때문에 참조 된 모든 DLL을 강제로 포함하기 위해 프로젝트 게시 속성의 '응용 프로그램 파일 ...'버튼을 사용해야했습니다.
JulienVan 2014

43
궁금해서 \ bin \ Release에서 직접 파일을 복사하는 것과 어떻게 다른가요?
Eric Eskildsen

10
\ bin \ Release에서 직접 파일을 복사하는 것과 어떻게 다른지 알고 싶습니다.
CoDeGiRl 2015-06-17

1
정말 좋은 대답, 나는에서 나열된 모든 파일을 복사 Application Files탭 및 게시에 .application, .manifest, .config, .exe and other dlls답 : ..에서 2 점 .. 감사 선생님
모하메드 Sufian

3
이것은 단순히 프로젝트를 빌드하고 bin 폴더 (Debug 또는 Release)에서 파일을 가져 오는 것과 다르지 않습니다. 게시 마법사를 실행하여 사용하지 않는 설치 프로그램을 생성하면 "빌드"를 클릭하는 것과 마찬가지로 프로젝트 자체가 다시 빌드됩니다. 더 짧은 대답은 프로젝트가 빌드되었는지 확인한 다음 프로젝트의 bin 폴더로 이동하여 프로그램을 실행하려는 위치에 파일을 복사 (또는 쉽게 복사 할 수 있도록 압축)하는 것입니다. 사용자 컴퓨터에 올바른 .Net 버전이 설치되어 있는지 확인해야합니다. . 그것은 당신의 응용 프로그램에 내장 된 버전과 일치해야합니다
제프 Blenman

2

먼저 다음 방법으로 파일을 게시해야합니다.

  1. 빌드-> 게시 또는 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭-> 속성-> 솔루션 탐색기에서 프로젝트를 게시하거나 선택하고 Alt+를 누릅니다. Enter 참고 : Visual Studio 2013 을 사용하는 경우 속성에서 빌드로 이동 한 다음해야합니다. DEBUG 상수 정의를 비활성화하고 TRACE 상수를 정의하면 바로 사용할 수 있습니다. 대표

  2. 특정 폴더에 파일을 저장하십시오. 생성 된 파일 (EXE 파일과 .config, .manifest 및 .application 파일, DLL 파일 등)을 찾습니다. 모두 동일한 폴더에 있으며 일반적으로 bin\Debug프로젝트 파일 (.csproj) 아래의 폴더에 있습니다. ). Visual Studio에서는 Application Files 폴더에 있으며 그 안에 .exe 및 dll 파일 만 있으면됩니다. (ClickOnce 및 기타 파일을 삭제 한 다음이 폴더를 zip 파일로 만들어 배포해야합니다.)

참고 : ClickOnce 응용 프로그램은 시스템에 프로젝트를 설치하지만 한 가지 장점이 있습니다. 실행하는 데 관리자 권한이 필요하지 않습니다 (응용 프로그램이 응용 프로그램 데이터 등에 사용할 폴더에 대한 일반 지침을 따르는 경우).


2
DEBUG 및 TRACE를 특정 값으로 설정해야하는 이유는 무엇입니까?
Peter Mortensen 2015 년

빌드에 대해 Trace 또는 Debug 조건부 속성을 사용하거나 둘 다 사용하거나 둘 다 사용하지 않을 수 있습니다. 따라서 빌드에는 디버그, 추적, 둘 다 또는 둘 다의 네 가지 유형이 있습니다. 프로덕션 배포를위한 일부 릴리스 빌드에는 둘 다 포함되지 않을 수 있습니다. 대부분의 디버깅 빌드에는 둘 다 포함됩니다. .................................................. ................................. msdn.microsoft.com/en-us/library/aa983575(v=vs .71) .aspx ............................................. .................................................. ..... msdn.microsoft.com/en-IN/library/ms164714.aspx
abe312

1
도움을 요청하는 사람들에게 항상 stackoverflow에서 제공됩니다.) 이해하지 못한 부분을 알려주십시오. 나는 실제로 약간의 연구 끝에 내 방법을 통해 작동하는 응용 프로그램을 만들었습니다. 저는 Visual Studio 2013을 사용하고있었습니다
abe312

1
내가 VS2015에서 "게시"라는 아무것도 표시되지 않습니다
UuDdLrLrSs

1
Visual Studio 2008과 Visual Studio 2017 모두 "Build" 메뉴에 "Publish <project name>" 이 있습니다 (아마도 Studio 2015에서 제외 되었습니까?). 어떤 경우 든 프로젝트 속성 "게시"→ "지금 게시"에서 수행 할 수도 있습니다 (여기 스크린 샷 참조).
Peter Mortensen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.