2017-09-10 4 views
0

도구 빌드에서 dacpac 파일을 포함합니다. 내 빌드를 실행하고 dacpac 파일이 debug \ bin \ *. dacpac에 예상대로 있습니다.어떻게 해결 출력 경로

이 SQL 프로젝트는 WinForms 솔루션의 일부입니다.

SQL 프로젝트를 Winforms 프로젝트의 프로젝트 참조로 포함 시켰습니다.

Visual Studio에서 프로젝트 참조 bin 폴더의 dll을 출력 경로 bin \ debug 폴더로 복사하는 것처럼 보입니다.

또한 Visual Studio에서 winform 프로젝트의 bin \ debug 폴더 (출력 경로)에 dacpac 파일을 복사하도록 구성 할 수 있습니까?

프로젝트 자체에 포함 된 다른 파일을 사용하면 쉽습니다. 출력 경로에 항상 복사하도록 파일 속성을 편집 할 수 있습니다. dacpac 파일은 프로젝트 자체가 아닌 빌드 출력이므로 BIN 출력의 경우에는 수행 할 수 없습니다.

답변

1

또한 Visual Studio에서 winform 프로젝트의 bin \ debug 폴더 (출력 경로)에 dacpac 파일을 복사하도록 구성 할 수 있습니까?

당신은 윈폼 프로젝트의 Pre-build event 또는 SQL 프로젝트의 Post-build event에 복사 작업을 추가 할 수 있습니다.

빌드 후 이벤트 프로젝트 SQL 에서

:

xcopy /y "$(ProjectDir)$(OutDir)*.dacpac" "$(SolutionDir)YourWindowsFormsProjectName\$(OutDir)" 

프로 - 빌드 이벤트의 WinForm프로젝트 :

여기
xcopy /y "$(SolutionDir)YourSQLProjectName\$(OutDir)*.dacpac" "$(ProjectDir)$(OutDir)" 

xcopy 몇 가지 일반적으로 사용되는 스위치는 :

/I - treat as a directory if copying multiple files 
/Q - Do not display the files being copied. 
/S - Copy subdirectories unless empty. 
/E - Copy empty subdirectories. 
/Y - Do not prompt for overwrite of existing files. 
/R - Overwrite read only files. 

희망 도움말.

+0

추한 사람! 롤 나는 그것을 시도 줄 것이다. 마이크로 소프트가 dacpac을 자동으로 복사하지 않는 이유는 모르겠습니다. 그것은 publish.xml 파일을 통해 자동 복사를 수행합니다 ... 왜 dacpac을 사용하지 않습니까? lol – user5855178

+0

dacpac은 빌드 아티팩트이기 때문에 생각합니다. 빌드 할 때만 나타납니다. 즉, 빌드중인 코드의 모든 분기에 따라 서로 다른 바이너리가 생성됩니다. 그것은 자신의 프로젝트 경로에 나타나지만 출력에 따라 작업을 변경할 수도 있습니다. msbuild 명령 줄을 사용하면 출력을 변경할 수있는 방법이 있지만 확신하지 못합니다. –

+0

@ user5855178 베드로가 말했듯이, "dacpac은 빌드 유물이므로 건물을 만들 때에 만 나타납니다." 그래서 dacpac 파일의 "Output Director로 복사"속성을 "Copy Always"로 변경할 수 없었습니다.이 파일은 참조 프로젝트의 출력 폴더로 복사되지 않습니다. 게다가, 빌드 이벤트는이 작업을 아주 잘 할 수 있습니다. 시도해 볼 수 있습니다. https://stackoverflow.com/questions/21668184/how-to-include-created-database-project-created-dacpac-into-a-cs-project –