14

우리는 C# 솔루션의 Visual Studio (2015 업데이트 3) 디버그 빌드가 모든 빌드 된 DLL과 함께 $ RANDOM_SEED $ 파일을 생성하고 있음을 발견했습니다.

파일의 내용은 단일 번호입니다. 1443972318

파일을 삭제 한 다음 다시 작성하면 파일이 재생성되는 데 다른 번호가 사용됩니다.

이 동작은 솔루션에서 단일 프로젝트 (표준 C# 프로젝트 참조/종속성 + System.Management 만있는)를 다시 빌드 할 때도 관찰되었습니다.

예 : msbuild <sln-file>이 아니며은 완전한 솔루션 또는 단일 프로젝트 빌드 용으로 파일을 재생성합니다.

VS를 다시 시작하면 파일이 더 이상 재생성되지 않습니다.

이 파일 이름은 소스 코드, 게시 빌드 단계 또는 내부 종속성에서 사용되지 않습니다. Random과 RNGCryptoServiceProvider 및 외부 종속성을 포함하여 .NET Framework 클래스에 대한 의존성이 상당히 있습니다. 우리는이 모든 것을위한 완전한 소스 코드를 가지고 있지 않으므로 종속성 중 어느 것에 책임이 있는지 철저히 검사 할 수는 없습니다.

이것은 어두운 곳에서 촬영 한 것입니다. 그러나 질문은 누구나 이와 비슷한 것을 보았습니까?

편집 나는 이것이을 downvoted되었습니다 놀라지 아니에요 - 나는 종료 꽤 열려 고맙지 만 나는 현재이 문제를 재현 할 수 아니에요 그것은 잠재적으로 심각한 결과를 초래할 수 있기 때문에 (난수 생성기로 공격?) 나는 그것을 어떻게해서든지 게시했다. 제가 재현 할 수 있다면 물론 여기에서 업데이트 할 것입니다.

+1

이름 지정 규칙이 아닌 Microsoft 파일 일 가능성이 낮습니다. 건물의 논리적 교차점과 무작위로 반복 할 수있는 무언가를하고자하는 것은 작은 것이다. 그 기계에 사용되는 단위 테스트 러너를보십시오. –

+0

오늘도 이것을 보았습니다. 그래도 어디서 왔는지 모르겠다. –

+1

http://serverfault.com/a/20992에서 언급 한 타사 도구를 사용했습니다. vstest.discoveryengine.x86.exe가 파일을 생성합니다. 저는 C# 클래스 라이브러리 프로젝트 하나를 사용하여 새로운 솔루션으로 repro'd했습니다. 빌드 할 필요도 없습니다. 솔루션을 열고 테스트 탐색기 창이 업데이트되기를 기다리는 것만으로 충분합니다. 정확한 exe는 : C : ₩ Program Files (x86) ₩ Microsoft Visual Studio 14.0 ₩ Common7 ₩ IDE ₩ CommonExtensions ₩ Microsoft ₩ TestWindow ₩ vstest.discoveryengine.x86.exe' –

답변

11

동일한 파일이 있습니다. 잠시 조사한 결과 나는 유죄임을 알았습니다 : 이 파일은 NUnit 3.x 테스트 어댑터에서 생성되었습니다. (NUnit 어댑터 소스 코드에서 AdapterSettings.cs에서 확인할 수 있습니다.)

+0

https://github.com/nunit/nunit3 -vs-adapter/blob/master/src/NUnitTestAdapter/AdapterSettings.CS와 네, NUnit 3 Test Adapter v3.5.1이 설치되어 있습니다 ... –

+0

랜덤 시드 값의 정확한 사용법이나 파일에 쓰여지는 조건이 확실하지 않습니다. 또한, 이것에 대해 NUnit 테스트 어댑터 [documentation] (https://github.com/nunit/docs/wiki/Visual-Studio-Test-Adapter)에서 아무것도 찾을 수 없습니다 ... –

10

이 파일은 NUnit에서 검색 및 실행 프로세스에서 무작위 테스트 케이스를 생성 할 때 동일한 임의 시드 값을 사용하는 데 사용됩니다. IDE가 두 개의 다른 프로세스를 사용하여 어댑터를 실행하기 때문에이 작업이 필요합니다. vstest.console.exe에서 어댑터를 실행할 때 실제로 필요하지 않습니다.