2011-08-24 8 views
2

C : 드라이브의 Visual Studio 2008에서 개발 한 아음속을 사용하는 프로젝트가 있습니다. 문제 없습니다. 방금 ​​Visual Studio 2010으로 업그레이드했습니다. (컴퓨터가 우연히 죽어서 VirtualBox로 가상화 된 Windows XP를 실행 중입니다.)VS2010 매핑 된 드라이브에 CAS가 작동하지 않습니다.

프로젝트가 C : 드라이브에 불평하지 않고 실행되지만 G : (기본 PC의 파티션을 가리키는 매핑 된 드라이브)에서 실행하면 아음속 사용 도구 (오류 목록에 있음)를 실행할 수 없습니다. 또는 '디버깅하지 않고 시작'을 클릭하면 웹 응용 프로그램을 실행할 수 있습니다 : 'G : \ GPNNT \ GpnntApp \ GpnntApp'에 대한 변경 모니터링 시작 실패).

.net 3.5 솔루션입니다.

enter image description here

이 잘 문서화 및 간단한 문제가 될 것 같다. 내가 촬영 한 다음 작업 :

c: 
cd "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" 
caspol -all -reset 
caspol -q -machine -addgroup 1 -url file:////g:\* FullTrust -name "G Drive" 
caspol -q -machine -addgroup 1 -url g:\* FullTrust -name "G Drive 1" 


c: 
cd "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319" 
caspol -all -reset 
caspol -q -machine -addgroup 1 -url file:////g:\* FullTrust -name "G Drive" 
caspol -q -machine -addgroup 1 -url g:\* FullTrust -name "G Drive" 

pause 

(나는 아무 소용이 엄청나게 다른 URL 형식을 모두 시도)

(1) 배치 파일

(2) 닷넷 2.0 구성 유틸리티 (제어판> 관리 도구)

분석 도구를 사용하면 위의 배치 파일에서 이루어진 두 설정이 드라이브의 파일에 적용되는 것처럼 보입니다.
또한 인트라넷 그룹을 FullTrust로 설정하려고 시도했습니다. 차이 없음.

(3) loadFromRemoteSources

이 프로젝트 자체는 .NET 2, VS2010를 사용하지만 자체가 내부적으로 .NET 4를 사용할 수있는 가정하는 것이 합리적이다. 일부는 더 인터넷 검색 (예 : here), 나는
<runtime> 
    <loadFromRemoteSources enabled="true"/> 
</runtime> 

에 모두 .NET 버전 '은 Machine.config 파일

을 추가 한 후.

(4)이 중에 차의 IOTA했다 없다

VS2010 SP1의 업그레이드. 내 혈압이 위험 할 정도로 높은 수준에 도달하기 전에 누군가가이 사실을 밝힐 수 있습니까? 나는 C :에서 모든 것을 돌리는 것으로 돌아갈 수 있다고 생각하지만 가상화 시대에 약간 우스운 것처럼 보입니다. 정말 VM에 다른 장소에있는 데이터를 원합니다.

메모 this SO 게시물에는 동일한 문제가 있으며 테스트 프로젝트가 끔찍한 결과는 아닙니다. 나는 또한 테스트 프로젝트를 가지고 있지 않지만, 비록 내가 가정 할 때 SubSonic dll에 묻혀있는 테스트 참조가있을지라도.

마지막으로 추가 : 또한 SQL Server 2005/8이 G :와 대화하지 않을 것입니다 (예 : 거기에서 백업 복구). 또한 모든 솔루션에서이 문제가 발생할 수 있다고 가정합니다. 그것은 또 하나의 위대한 일이 될 것입니다.

답변

3

후손에 대한 조사 결과는 다음과 같습니다. VS 2010 년

매핑 된 드라이브 :

안전하지 않은 위치에서 프로젝트를로드에 대한 초기 메시지가
  • . 이는 설명 된대로 CASPOL을 사용하여 수정됩니다. CASPOL은 URL이 유연한 이며 표시되는 두 형식을 모두 허용합니다. CASPOL은 기본적으로 .NET 4에서 을 사용할 수 없도록 설정되므로 차이가 발생하지 않습니다 (이유는 here 참조).
  • 몇 가지 더 많은 문제가있다가 나중에 문서화하지는 않았지만 각각을 수정 한 후에 다른 문제가 발생합니다. loadFromRemoteSources가 하나의 메시지를 수정했지만 '변경 사항 모니터링을 시작하지 못했습니다 ...'를 터치 할 수있었습니다. 이것의 일부로, Christoph의 대답은 아마도 (적어도 .NET 2에서는) 드라이브에 각 어셈블리를 설정해야 할 것이므로 VS 프로젝트 드라이브에서는 전혀 비실용적입니다.

놀랍지 만, VS 프로젝트를 매핑 된 드라이브에 저장하는 것이 너무 힘들다고 생각합니다. 소스 제어 및 로컬 프로젝트가 필요합니다. 솔직히, 네트워크 드라이브에 대한 실행 취소의 부족은 IMO뿐 아니라 개발 작업에도 큰 고통입니다.

하지만 원래의 문제는 내가 C에서 프로젝트를 저장하지 않은 것과 같은 내가 네트워크 드라이브를 필요로 너무 많이하지 않았다

:. 즉, 내 VM (의 나는 백업 할 수 있기를 원 VM 기반 드라이브 이미지와 별도로 데이터).

내게는 항상 두 번째 가상 디스크를 만들어 G :로 VM에 연결하는 것이 답답해. 로컬 드라이브이므로 모든 신뢰 문제를 해결하지는 않지만 전체 데이터 분리를 얻습니다. Dropbox 폴더에 해당 드라이브의 모든 데이터를 저장하여 실시간으로 오프 사이트 백업을 제공하므로 만족 스럽습니다.

0

어쩌면 내가 잘못 본 것일 수도 있지만 매핑 된 드라이브에서 작업 할 때 강력한 이름으로 작업해야한다고 생각합니다.쉽게 수정하거나 나중에 정책을 제거 할 수 있도록

caspol -m -q -ag "GDrive" -strong -file "<pathToFile>" "<assemblyStrongName>" "<assemblyVersion>" FullTrust -n "GDriveFileX" -d "Code Group for fileX"

caspol -m -q -ag My_Machine_Zone -url g:\* Nothing -n "GDrive"

처럼 난 항상 최상위 그룹을 만들 것입니다. 나는 그것이 고통 스럽지만 uri e ven을 기반으로 한 매핑 된 드라이브를 완전히 신뢰하도록 허용하지 않는 것이 합리적이라고 생각합니다.

가능하면 좀 더 현대적인 것을 사용하십시오.

관련 문제