[visual-studio] MSBUILD : 오류 MSB1008 : 하나의 프로젝트 만 지정할 수 있습니다.

다음 빌드 오류가 발생하는 이유는 무엇입니까?

C : \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe C : \ Code \ EduBenesysNET \ EduBenesysNET \ EduBenesysNET.vbproj / t : publish / p : Configuration = Release / p : Platform = AnyCPU / v : detailed / p : PublishDir = "\\ BSIIS3 \ c $ \ DATA \ WEBSITES \ benesys.net \ benesys.net \ TotalEducationTest \"/p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest/ "/p:ApplicationVersion=1.0.1.198 / p : ProductName ="Total Education TEST "/ p : PublisherName ="BeneSys, Inc. " / p : UpdateRequired = "True"/p:MinimumRequiredVersion=1.0.1.198
Microsoft (R) Build Engine 버전 3.5.30729.1
[Microsoft .NET Framework, 버전 2.0.50727.3603]
Copyright (C) Microsoft Corporation 2007. 모든 권리 보유.

MSBUILD : 오류 MSB1008 : 하나의 프로젝트 만 지정할 수 있습니다.
스위치 : 교육

스위치 구문의 경우 "MSBuild / help"를 입력합니다.

두 번째 프로젝트가 어떻게 지정되는지 알 수 없습니다.
프로젝트 파일에 어딘가에 저장되어 있습니까?



답변

PublishDir 속성의 후행 슬래시가 끝 따옴표를 이스케이프하는 것으로 밝혀졌습니다. 후행 슬래시를 피하면 문제가 해결되었습니다.

/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\\"

이렇게하면 MSBuild에서 후행 슬래시가 필요한 속성에 공백이있는 경로에 따옴표를 사용할 수 있습니다.

나는 이것이 오래된 게시물이라는 것을 알고 있지만 누군가와 이것을 공유해야한다고 생각합니다 🙂


답변

해결 방법
/ p : PublishDir 설정 주위의 따옴표 제거


따옴표 대신

/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\"  

따옴표 사용 안 함

/p:PublishDir=\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest\  

내 결과를 더 빨리 게시하지 않아서 죄송합니다. 변경해야 할 사항을 확인하기 위해 실제로 다시 조사해야했습니다. 따옴표 제거가 효과가있을 것이라고 누가 생각했을까요? 나는 동료가 다른 솔루션을 위해 빌드하는 것을 볼 때 이것을 발견했고 따옴표가 없다는 것을 알았습니다.


답변

Git Bash에서는 다음과 같이 이중 슬래시로 매개 변수를 지정해야했습니다.

MSBuild.exe "Path\to\Solution.sln" //p:Platform="x86" //p:Configuration=Release //p:AppxBundlePlatforms="x86" 


답변

이 문제는 공백을 포함하고 따옴표가없는 경로 나 속성이있을 때 나타납니다.

모든 속성과 경로에 따옴표가 있습니다. 이상합니다. 오류 메시지는 Education스위치로 표시 되며 /p:ProductName="Total Education TEST"작동하는지 확인 하려면 제거 하십시오.


답변

경로와 파일 이름 주위에 qout을 넣어야합니다.
따라서 MSBuild “C : \ Path Name \ File Name.Exe”/ [Options]를 사용하십시오.


답변

게시 경로 끝에서 후행 백 슬래시 또는 슬래시를 제거하고 URL을 설치하십시오.

/p:PublishDir="\\BSIIS3\c$\DATA\WEBSITES\benesys.net\benesys.net\TotalEducationTest"
/p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest"

\ “및 (또는) /”를 사용하여 특수 문자 시퀀스를 쳤어 야하지만 cmd.exe에서 알아낼만큼 충분히 알지 못합니다.

저는 개인적으로 항상 Powershell을 사용합니다. 훨씬 더 친절하고 강력합니다!

도움이 되었기를 바랍니다.


답변

vs2012에서는 기본 TFS 템플릿 “DefaultTemplate …. xaml”(일반적으로 복사본)을 사용하여 빌드 정의 “Test Build”를 만들어보십시오.

일반적인 자체 설명 오류와 함께 실패합니다. “MSBUILD : 오류 MSB1008 : 하나의 프로젝트 만 지정할 수 있습니다. 스위치 : 활동”

물론 기본 TFS 템플릿 어딘가에 일부 "가 누락되어 msbuild가 공백을 포함하는 이스케이프되지 않은 디렉터리를 매개 변수로 수신하므로 여러 프로젝트 (?!)

따라서 TFS 빌드 정의 이름에 공백을 사용하지 마십시오. 매우 슬프고 단순합니다.