2012-06-22 2 views
7

최근에 VS2010 (10.0.40219.1 SP1Rel) 및 .Net 7.1.1.4 (x64) 용 ILOG 규칙으로 업그레이드되었습니다. 이제 다음이 발생할 수 있습니다.디버깅 후 프로젝트 참조가 삭제되었습니다.

  1. 솔루션을 엽니 다.
  2. 프로젝트 디버그
  3. 디버깅을 중지하십시오.
  4. 파일 닫기 (지금까지는 app.Config 및 Program.cs)
  5. "리팩토링 규칙"알림 창이 표시됩니다.
  6. 모든 규칙 파일의 첫 번째 프로젝트 참조가 공포에 떨게됩니다.

대용량 솔루션 (약 60csproj ~ 15 규칙)이 발생합니다. 이것은 작은 솔루션 (6 개의 csproj와 1 개의 rulep)에서 발생합니다.

우리는 디버깅 후 VS2010을 디버깅하고 닫기/다시 열 때 모든 규칙을 언로드하는 참조가 떨어지는 것을 방지하기 위해 극단적 인 개발자 조치를 취하기 시작했습니다.

프로젝트 참조 또는 소프트웨어 설치가 중단되어 프로젝트 참조 삭제가 중단 될 수 있습니까?


업데이트 : - 디버거를 사용하지 않고 디버거를 참여하는 문제가 발생하는 "/ 참조 낙하 리팩토링 규칙"을 얻을 수있는 신뢰할 수있는 방법 인 반면, 그것은 또한 단지 파일을 닫아 종종 발생합니다.


내가 처음 현상금을 수여하고, 누군가가 받아 들여질 수 해답을 제공하는 경우 두 번째 현상금을 설정 기꺼이했습니다.


해결 방법 : 우리는 세 가지 솔루션 파일

  1. 빌드 서버에 대한 그 모든 것을있는 솔루션 파일이 있습니다.
  2. 룰프와 그 종속성 만있는 솔루션 파일. Devs는이 규칙을 한 번 빌드하여 .dll을 규칙에 적용합니다.
  3. 규칙 프로젝트가없는 솔루션 파일입니다. 룰프의 dll을 필요로하는 프로젝트에는 dll을 해당 폴더에 복사하는 사전 빌드 이벤트와 해당 위치에 대한 어셈블리 참조가 있습니다. 디버그 및 릴리스 빌드를 모두 허용하려면 약간의 간단한 조작이 필요했습니다.

Devs는 VS가 mangle에 대해 rulep 파일이없는 세 번째 솔루션을 안전하게 디버깅 할 수 있습니다.

+0

.Net 프레임 워크는 무엇입니까? 닷넷 4? .Net 4 고객 프로필? – Bob

+0

우리는 .net4 (ILOG 7.1.1.4에 의해 요구됨)입니다 - 타겟으로하는 프로젝트가 없습니다 .net4cp –

+0

이 DLL은 빌드 중에 빌드 된 것입니까? 즉, 타사 DLL 또는 팀에서 만든 DLL입니까? –

답변

1

어쨌든 더 많은 문제를 제어하고 싶다면 프로젝트/솔루션을 소스 제어에 넣고 Visual Studio를 구성하여 파일 체크 아웃 권한을 요청할 수 있습니까?
프로젝트 참조 (또는 소스 제어에서 다른 파일)를 수정하려고 할 때 묻는 메시지가 표시되며 원하지 않는 수정을 거부 할 수 있습니다.

나는 "ILOG Rules For .net"에 대해 아무것도 모르고 어디서/어떻게 규칙 설정을 저장하는지, 그래서이 접근법은 당신의 상황에서 작동하지 않을 수도있다. 이 경우 내 대답을 무시하십시오.

+0

이것은 세세한 도움이됩니다. 우리 팀은 원본 컨트롤과 로컬 디스크 복사본을 손상으로부터 보호하는 방법에 대해 논의했습니다. 읽기 전용 규칙 파일을 사용하더라도 VS는 여전히 작동 할 수있는 곰입니다. –

+0

VS가 매우 추락하기 쉽습니다 ... : - | 그리고 이상한 일들을하는 경우가 많습니다 ... 결국 설치 한 VS-addon/extension을 사용하지 않으려 고 시도한 적이 있습니까? 아마도 .net과 ILOG Rules/Library/Addon 사이에 몇 가지 비 호환성이 있습니다. – Max

+0

그게 우리 첫 반응이었습니다. VisualNUnit으로 디버깅 할 때 동작을 먼저 관찰했습니다. 일반적으로 디버깅을 실현하기 전에 그 문제를 일으켰습니다. 이제 VS2010 또는 ILOG를 제외하고 제거 할 항목이 없습니다. –

0

나는 rulep 파일에 익숙하지만 - 어떤 파일을 지우고 있는지 정확히 알기 위해 어떤 필터와 함께 Procmon을 사용하는 것을 고려해보십시오. 다행히 그게 당신에게 더 많은 단서를줍니다.

Visual Stuido 자동화 API를 사용하는 Visual Studio에 대한 플러그인 인 경우 범인을 좁히는 데 도움이되지 않습니다.