2009-05-07 4 views
7

소규모 프로젝트의 경우 거의 즉시 디자인보기로 전환 할 수 있습니다 (< 1 초). 첫 번째 시간 - 왜 디자인보기가 너무 느릴 수 있습니까?

나는 디자인 뷰에서 컨트롤 또는 폼을 열고 약 60 초 정도 소요 대규모 프로젝트가 있습니다. 이 60 초 지연 후 디자인보기에서 프로젝트의 모든 컨트롤을 거의 즉시 열 수 있습니다 - 프로젝트를 다시 컴파일 할 때까지. 이 프로젝트에 의해 만들어진 EXE가 다른 (작은) 프로젝트에서 참조하는 경우

는 작은 프로젝트는 즉시 큰 프로젝트로 부진된다. 마찬가지로 대형 프로젝트의 모든 파일을 작은 프로젝트에 개별적으로 추가하면 작은 프로젝트가 부진하게됩니다.

큰 프로젝트는 큰 Managed C++ 프로젝트를 참조하지만 같은 참조를 추가하면 (참조에서로드 된 함수를 호출하여로드 됨) 작은 프로젝트에 작은 프로젝트가 여전히 빠릅니다.

내 큰 프로젝트는 SandDock을 사용합니다. 소규모 프로젝트에서 SandDock을 사용하면 여전히 빠릅니다.

내 대형 프로젝트는 도구 상자에 나타납니다 약 60 사용자 컨트롤이 있습니다. 작은 프로젝트에 60 개의 사용자 컨트롤을 추가하면 작은 프로젝트가 여전히 빠릅니다. 내가 가진 도구 상자에서 숨겨진 사용자 컨트롤을하면

은 [(false)를 System.ComponentModel.ToolboxItem는, 큰 프로젝트는 여전히 느립니다.

문제는 VS2005과 VS2008 모두에서 발생합니다.

처음으로 디자인보기를 열려면 느린 대형 프로젝트를 만드는 무엇을 할 수 있을까? 다른 참조? 많은 수의 컨트롤? 많은 수의 수업? 다른 원인은?

ProjectAssemblies 폴더 (C : \ Documents and Settings \ tim.gradwell \ Local Settings \ Application Data \ Microsoft \ VisualStudio \ 9.0 \ ProjectAssemblies)는 거대하다는 것을 눈치 챘을 것입니다. (> 1 기가 바이트) 그리고 여기에있는 대부분의 폴더에는 내 Managed C++ dll 사본이 있습니다! 이러한 폴더는 디자인보기를 다시 열 때마다 다시 컴파일 된 것처럼 보입니다 (다시 컴파일 한 후). 이것이 경기 침체와 관련이 있습니까?


추가 정보 :

사용자 제어에서의 ToolStrip 또는 폼 형태로드 60 초가 걸릴 수있다. 도구 스트립을 제거하면 (그러나 양식에 다른 여러 컨트롤이있는 경우에도) 디자인 뷰를 즉시 전환 할 수 있습니다.

그게 전부는 아니지만 ... 새로운 프로젝트의 툴팁으로 막대한 속도 저하가 발생하지 않아 커다란 프로젝트에서 툴팁에 영향을주는 뭔가가 있어야합니다. 또한 툴팁이없는 다른 폼/컨트롤은 디자인보기를 표시하는 데 여전히 60 초가 걸리므로 툴팁에 영향을주는 것은 다른 컨트롤에도 영향을 미칩니다. 나는 정확히 어떤 컨트롤을 못 박 으려고 노력할 것인가?

+0

- 둔화의 원인이되는 대규모 프로젝트는 C#으로, 맞습니까? 이 프로젝트는 C#으로 작성되어 – overslacked

+0

는 ... 또한 관리되는 C++ 프로젝트를 참조하지만 그것은 새로운 브랜드에서 발생 ... –

답변

0

같은 비슷한 일이으로 Devenv.exe도 "건물"후 무작위로

을 중단하고 있음에 additon 내 2005 일어나고 때로는 사용자 지정 컨트롤은 최근이 손상 기본 폼

하는 경향이 바이러스 검사 및 조각 모음?

+0

를 그 차이를 만든 있는지 확인하기 위해 관리되는 C++ 프로젝트를 분리하려고 할 시간이 없었습니다 컴퓨터 (창문을 새로 설치할 때와 마찬가지). 구형 컴퓨터에서는 디자인보기를 여는 데 몇 분이 걸립니다. –

7

도구 상자에 표시되지 않도록 클래스를 표시 했어도 Visual Studio는 열려있는 모든 프로젝트를 검색해야합니다. 작업 속도를 높이려면 도구 상자를 자동으로 채우려면 설정을 해제해야합니다. 도구 상자로 많은 작업을 수행하면 다소 짜증이 날 수 있지만, 작업 속도는 훨씬 빨라질 것입니다.

설정은 도구 -> 옵션 -> Windows Forms Designer에서 "AutoToolboxPopulate"를 false로 설정하십시오.

+0

제안을 주셔서 감사합니다 -하지만 여전히도 등, 다시 시작 및 청소 후 AutoToolboxPopulate이 false :( –

+0

으로 설정 한 경우에도 발생 성가신 그게 전부 우리는 똑같은 상황을했고, 그 잘 모든 것을 위로 고정 설정이 행운을 빕니다.. ! –

2

첫 번째 대답 : "설정은 도구 -> 옵션 -> Windows Forms Designer에서"AutoToolboxPopulate "를 false로 설정하면 효과가 있습니다. 설계자는 처음에 디자인보기에서 양식을 볼 때 양식에 대한 제어에 초점을 맞추려고 할 때 적어도 1 분 동안 기다렸습니다. 이제는 몇 초 밖에 걸리지 않습니다.

0

을 (내가 직접 그 대답에 대해 언급하기에 충분한 명성 포인트가 없었어요) 내가 비주얼 스튜디오 2005에서 윈 CE 6.0 프로젝트에서이 문제를 가지고이 프로젝트는 System.Data.SQLite.dll의 v1.0.65.0을 사용 . 프로젝트를 열거 나 다시 컴파일 할 때마다 설계 용 격자가있는 폼을 열려고 할 때마다 적어도 12 분의 지연이있었습니다. "My Documents \ Local Settings \ Application Data \ Microsoft \ Visual Studio \ 8.0 \ Project 어셈블리"아래에 770 개의 홀수 폴더를 생성하는 것으로 나타났습니다. 대부분 SQLite dll 복사본이있었습니다.
문제는 프로젝트에서 "형제"폴더의 프로젝트에서이 DLL을 참조했다는 것입니다.
프로젝트 폴더 : 예를 들어 "... 프로젝트 \ ThisAndThat \ projectFolder"
DLL 폴더 : "... 프로젝트 \ ThisAndThat \ projectFolderBin"
이 문제를 명시 다른 폴더 관계가있을 수 있지만, 내가 그랬어 조사하지 마라.
DLL을 "Program Files \ Microsoft.NET \ SDK \ CompactFramework \ v2.0 \ WindowsCE"폴더로 옮겼습니다. 문제가 해결되었습니다. 두 개의 탭이 포함 된 탭 컨트롤이있는 폼이 있습니다. 각 탭에는 DataGrid 컨트롤이 있습니다. 이 양식은 이제 디자이너에서 거의 즉시로드됩니다.
누군가가 더 나은 솔루션을 알고 있거나 VS2005의 설정 또는 동작으로 인해이 문제가 발생하는 경우 의견을 추가하십시오. 그냥 선명도

관련 문제