Visual Studio 2008에서 프로그램을 디버깅하고 싶습니다. 문제는 인수를 얻지 못하면 종료된다는 것입니다. 이것은 주요 방법에서 가져온 것입니다.
if (args == null || args.Length != 2 || args[0].ToUpper().Trim() != "RM")
{
Console.WriteLine("RM must be executed by the RSM.");
Console.WriteLine("Press any key to exit program...");
Console.Read();
Environment.Exit(-1);
}
나는 그것을 주석 처리하고 컴파일 할 때 다시 들어가기를 원하지 않습니다. 디버깅 할 때 인수로 프로그램을 시작하려면 어떻게해야합니까? 시작 프로젝트로 설정됩니다.
답변
로 이동하십시오 Project-><Projectname> Properties
. 그런 다음 Debug
탭을 클릭하고 라는 텍스트 상자에 인수를 입력합니다 Command line arguments
.
답변
다음과 같은 지시문을 사용하는 것이 좋습니다 .
static void Main(string[] args)
{
#if DEBUG
args = new[] { "A" };
#endif
Console.WriteLine(args[0]);
}
행운을 빕니다!
답변
내 제안은 단위 테스트를 사용하는 것입니다.
응용 프로그램에서 다음 스위치를 수행하십시오 Program.cs
.
#if DEBUG
public class Program
#else
class Program
#endif
및 static Main(string[] args)
.
또는 다음 을 추가하여 Friend Assemblies 를 사용할 수도 있습니다.
[assembly: InternalsVisibleTo("TestAssembly")]
귀하의 AssemblyInfo.cs
.
그런 다음 단위 테스트 프로젝트와 다음과 같은 테스트를 만듭니다.
[TestClass]
public class TestApplication
{
[TestMethod]
public void TestMyArgument()
{
using (var sw = new StringWriter())
{
Console.SetOut(sw); // this makes any Console.Writes etc go to sw
Program.Main(new[] { "argument" });
var result = sw.ToString();
Assert.AreEqual("expected", result);
}
}
}
이렇게하면 코드를 편집하거나 메뉴 설정을 변경할 필요없이 자동화 된 방식으로 여러 인수 입력을 테스트 할 수 있습니다.
답변
명령 줄 매개 변수에 민감한 정보가 있고 코드 저장소에 저장하는 것을 원하지 않았기 때문에이 페이지를 방문했습니다. 시스템 환경 변수를 사용하여 각 목적에 따라 필요에 따라 각 빌드 또는 개발 시스템에 설정할 수있는 값을 보유하고있었습니다. 환경 변수 확장은 셸 배치 프로세스에서 훌륭하게 작동하지만 Visual Studio에서는 작동하지 않습니다.
Visual Studio 시작 옵션 :
그러나 Visual Studio는 변수 값이 아니라 변수 이름을 반환합니다.
문제의 예 :
여기에서 여러 가지를 시도한 후 최종 솔루션은 내 인수 프로세서에서 환경 변수에 대한 빠른 조회를 작성하는 것입니다. 들어오는 변수 값에 %에 대한 확인을 추가하고 발견되면 환경 변수를 찾아 값을 바꿉니다. 이것은 Visual Studio와 내 빌드 환경에서 작동합니다.
foreach (string thisParameter in args)
{
if (thisParameter.Contains("="))
{
string parameter = thisParameter.Substring(0, thisParameter.IndexOf("="));
string value = thisParameter.Substring(thisParameter.IndexOf("=") + 1);
if (value.Contains("%"))
{ //Workaround for VS not expanding variables in debug
value = Environment.GetEnvironmentVariable(value.Replace("%", ""));
}
이를 통해 샘플 배치 파일과 Visual Studio를 사용한 디버깅에서 동일한 구문을 사용할 수 있습니다. GIT에 저장된 계정 정보 또는 URL이 없습니다.
배치에서 사용 예
답변
대한 비주얼 스튜디오 코드 :
launch.json
파일 열기- 구성에 인수를 추가하십시오.
“args”: [ “일부 인수”, “다른 인수”],