대충 하면 혼나빈다
ぼろ(襤褸)이 무엇인지 아시나요. 과거에 서든어택 유저들이 뽀록샷 이라면서 상대를 놀려 먹었나 보아요. 본인 실력이 아니고 우연히 얻어 걸린 것이라며 상대의 실력을 신용하지 않는 것이어요. 일본어 보록에서 생겨난 한때를 기록한 신조어인데 들통나다는 의미로도 흔하게 사용되었어요.
저도 머 이케 닷넷과 asp라이브러리 경로에 버전 네이밍이 항상 일치 하겠다고 여겼는데 RC(release candidate) 최하위 버전이 서로 달라져요. 이렇게 되면 이 코드는 100% 문제가 생겨요.
public ScriptBuilder(CSharpCompilationOptions option, IEnumerable<MetadataReference> reference, params string[] reference_path) {
Option = option;
foreach(var metadata in reference) {
Reference.Add((PortableExecutableReference)metadata);
}
for(var i = 0; i < reference_path.Length; i++) {
foreach(var file in new DirectoryInfo(reference_path[i]).EnumerateFiles("*.dll")) {
Reference.Add(MetadataReference.CreateFromFile(file.FullName));
}
}
}nightmare/XCsModule/ScriptBuilder.cs at main · nyakuz/nightmare · GitHub
/usr/share/dotnet/shared/Microsoft.NETCore.App/9.0.0-rc.2.24473.5
/usr/share/dotnet/shared/Microsoft.AspNetCore.App/9.0.0-rc.2.24474.3
다음번 거의 확정된 버전을 표기하는 것이어서 이렇게 차이가 날 수 있쩌. 이외에도 심각한 버그가 생겨서 긴급 패치로 인하여 버전이 달라지는 수가 있어요.
이런 경우에는 상위 폴더를 찾은 다음 대상 폴더명을 대부분 지우고 와일드카드 검색으로 경로를 대체하여야 하겠쩌.
public ScriptBuilder(CSharpCompilationOptions option, IEnumerable<MetadataReference> reference, params string[] reference_path) {
Option = option;
foreach(var metadata in reference) {
Reference.Add((PortableExecutableReference)metadata);
}
for(var i = 0; i < reference_path.Length; i++) {
var dir = new DirectoryInfo(reference_path[i]);
if(dir.Parent == null) {
continue;
}
if (dir.Exists == false) {
dir = dir.Parent.GetDirectories(dir.Name.Substring(0, 1) + "*").First();
}
foreach (var file in dir.EnumerateFiles("*.dll")) {
Reference.Add(MetadataReference.CreateFromFile(file.FullName));
}
}
}