msbuild로 웹을 게시하는 방법?


216

Visual Studio 2010에는 웹 응용 프로그램 프로젝트를 파일 시스템 위치에 게시 할 수있는 게시 명령이 있습니다. TeamCity 빌드 서버에서이 작업을 수행하려고하므로 솔루션 러너 또는 msbuild를 사용하여 수행해야합니다. 게시 대상을 사용해 보았지만 ClickOnce에 해당되는 것으로 생각됩니다.

msbuild Project.csproj /t:Publish /p:Configuration=Deploy

기본적으로 웹 배포 프로젝트가 수행하는 작업을 정확히 수행하고 싶지만 애드 인이 없습니다. WAP를 컴파일하고 실행에 불필요한 파일을 제거하고 web.config 변환을 수행 하고 출력을 지정된 위치에 복사해야합니다.

Jeff Siver의 답변을 기반으로 한 My Solution

<Target Name="Deploy">
    <MSBuild Projects="$(SolutionFile)" 
             Properties="Configuration=$(Configuration);DeployOnBuild=true;DeployTarget=Package" 
             ContinueOnError="false" />
    <Exec Command="&quot;$(ProjectPath)\obj\$(Configuration)\Package\$(ProjectName).deploy.cmd&quot; /y /m:$(DeployServer) -enableRule:DoNotDeleteRule" 
          ContinueOnError="false" />
</Target>


@ SnOrfus 저는 현재 VS 2008에서 웹 배포 프로젝트를 사용하고 있습니다 (이 질문에 대한 답변에서 언급했듯이) 대신 VS 2010의 게시 기능을 자동화하려고합니다.
jrummell

이 질문이 도움이 될 것 같습니다 stackoverflow.com/questions/1983575/…
jrummell

2
스크립트에 그냥 하나의 작은 수정 : 당신은 배포 스크립트 $ (ProjectPath)를 사용하고 있지만 정말 원하는 $ (PROJECTDIR) 그렇지 않으면 끝낼 .csproj \ OBJ
트로이 헌트

2
VS2012부터는 훨씬 쉽습니다 : stackoverflow.com/a/13947667/270348
RobSiklos

답변:


137

나는 주로 사용자 정의 msbuild 스크립트없이 작동합니다. 관련 TeamCity 빌드 구성 설정은 다음과 같습니다.

이슈 경로 : % system.teamcity.build.workingDir % \ MyProject \ obj \ Debug \ Package \ PackageTmp 
러너 유형 : MSBuild (MSBuild 파일의 러너) 
빌드 파일 경로 : MyProject \ MyProject.csproj 
작업 디렉토리 : 체크 아웃 디렉토리와 동일 
MSBuild 버전 : Microsoft .NET Framework 4.0 
MSBuild 도구 버전 : 4.0 
플랫폼 실행 : x86 
대상 : 패키지 
MSBuild.exe에 대한 명령 줄 매개 변수 : / p : Configuration = Debug

컴파일하고 (web.config 변환으로) 출력을 아티팩트로 저장합니다. 유일하게 누락 된 것은 출력을 지정된 위치에 복사하는 것입니다. 그러나 이슈에 종속 된 다른 TeamCity 빌드 구성 또는 msbuild 스크립트를 사용하여 수행 할 수 있습니다.

최신 정보

다음은 컴파일하고 (web.config 변환으로) 패키지를 내 스테이징 서버로 복사하는 msbuild 스크립트입니다.

<?xml version="1.0" encoding="utf-8" ?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
        <SolutionName>MySolution</SolutionName>
        <SolutionFile>$(SolutionName).sln</SolutionFile>
        <ProjectName>MyProject</ProjectName>
        <ProjectFile>$(ProjectName)\$(ProjectName).csproj</ProjectFile>
    </PropertyGroup>

    <Target Name="Build" DependsOnTargets="BuildPackage;CopyOutput" />

    <Target Name="BuildPackage">
        <MSBuild Projects="$(SolutionFile)" ContinueOnError="false" Targets="Rebuild" Properties="Configuration=$(Configuration)" />
        <MSBuild Projects="$(ProjectFile)" ContinueOnError="false" Targets="Package" Properties="Configuration=$(Configuration)" />
    </Target>

    <Target Name="CopyOutput">
        <ItemGroup>
            <PackagedFiles Include="$(ProjectName)\obj\$(Configuration)\Package\PackageTmp\**\*.*"/>
        </ItemGroup>
        <Copy SourceFiles="@(PackagedFiles)" DestinationFiles="@(PackagedFiles->'\\build02\wwwroot\$(ProjectName)\$(Configuration)\%(RecursiveDir)%(Filename)%(Extension)')"/>
    </Target>
</Project>

PropertyGroup 태그에서 SolutionName 및 ProjectName 속성을 제거하여 msbuild에 전달할 수도 있습니다.

msbuild build.xml /p:Configuration=Deploy;SolutionName=MySolution;ProjectName=MyProject

업데이트 2

이 질문은 여전히 트래픽의 좋은 거래를 얻을 수 있기 때문에, 나는 그것을 사용하는 내 현재 스크립트 내 대답을 업데이트하는 가치라고 생각 웹 배포를 (또한 MSDeploy라고도 함).

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="4.0">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
    <ProjectFile Condition=" '$(ProjectFile)' == '' ">$(ProjectName)\$(ProjectName).csproj</ProjectFile>
    <DeployServiceUrl Condition=" '$(DeployServiceUrl)' == '' ">http://staging-server/MSDeployAgentService</DeployServiceUrl>
  </PropertyGroup>

  <Target Name="VerifyProperties">
    <!-- Verify that we have values for all required properties -->
    <Error Condition=" '$(ProjectName)' == '' " Text="ProjectName is required." />
  </Target>

  <Target Name="Build" DependsOnTargets="VerifyProperties">
    <!-- Deploy using windows authentication -->
    <MSBuild Projects="$(ProjectFile)"
             Properties="Configuration=$(Configuration);
                             MvcBuildViews=False;
                             DeployOnBuild=true;
                             DeployTarget=MSDeployPublish;
                             CreatePackageOnPublish=True;
                             AllowUntrustedCertificate=True;
                             MSDeployPublishMethod=RemoteAgent;
                             MsDeployServiceUrl=$(DeployServiceUrl);
                             SkipExtraFilesOnServer=True;
                             UserName=;
                             Password=;"
             ContinueOnError="false" />
  </Target>
</Project>

TeamCity에는 env.Configuration, env.ProjectName및 이라는 매개 변수가 있습니다 env.DeployServiceUrl. MSBuild 러너에는 빌드 파일 경로가 있으며 매개 변수는 자동으로 전달됩니다 (명령 행 매개 변수에서 지정할 필요가 없음).

명령 행에서 실행할 수도 있습니다.

msbuild build.xml /p:Configuration=Staging;ProjectName=MyProject;DeployServiceUrl=http://staging-server/MSDeployAgentService

2
고마워-이것은 powershell에서 직접 잘 작동합니다 (포맷에 대한 사과-주석에서 캐리지 리턴 없음) : & msbuild "$ solution"/ p : "Configuration = $ configuration"; & msbuild "$ project"/ t : Package / p : "Configuration = $ configuration; _PackageTempDir = $ outputfolder"
zcrar70

나는 첫 번째 업데이트에서 예를 시도하고는 것 같다 Package대상, WebDeploy에 너무 의존 : error : Package/Publish task Microsoft.Web.Publishing.Tasks.IsCleanMSDeployPackageNeeded failed to load Web Deploy assemblies. Microsoft Web Deploy is not correctly installed on this machine.(그것을 언급 당신이 당신의 두 번째 업데이트가 먼저 WebDeploy 아직 사용하지 것이다 의미 할 수 WebDeploy를 사용하는 쓰기 때문이다.)
chiccodoro

@jrummell : Visual Studio 웹 프로젝트를 TeamCity의 원격 Windows 서버에 배포하고 싶습니다. 어떻게해야합니까? 저는 초보자이고 수행하는하는 일에 대해 아무 생각이 없다
네빈 라즈 빅터

1
웹 응용 프로그램 프로젝트를 사용하여 TeamCity에서이 작업을 수행 할 수는 있지만 레거시 바운드 웹 사이트 프로젝트도 있으며 패키지로 게시해야하며 MSDeploy를 사용해야합니다. VS2013 내에 게시하면 배포 패키지가 있지만 cmd 행의 MSBuild는 패키지를 만들지 않습니다. 이견있는 사람?
KnowHowSolutions 2016 년

1
여기에 게시 프로필에 대한 언급이 없습니다. 올바른 web.config 변환이 적용되도록 게시 프로파일을 지정해야합니다. 업데이트 : Nevermind ...이 기능은이 게시물 이후 2 년 후에 소개되었습니다. 이것은 여전히 ​​작동합니다. 이 스레드의 이후 게시물은 명령 줄에서 게시 프로필로 게시하는 방법을 보여줍니다.
Triynko

84

VS 2012에 도입 된 배포 프로필을 사용하여 다음 명령 줄을 사용하여 게시 할 수 있습니다.

msbuild MyProject.csproj /p:DeployOnBuild=true /p:PublishProfile=<profile-name> /p:Password=<insert-password> /p:VisualStudioVersion=11.0

매개 변수에 대한 자세한 내용 은 이것을 참조하십시오 .

/p:VisualStudioVersion매개 변수 값 은 Visual Studio 버전에 따라 다릅니다. Wikipedia에는 Visual Studio 릴리스 및 해당 버전테이블이 있습니다 .


6
VS2012 .NET 3.5를 사용하면 파일 시스템에 배포 할 수 없었습니다. 단순히 구축하고 배포하지 않습니다.
Jay Sullivan

2
귀하의 /p:VisualStudioVersion=11.0이 생명을 구했습니다. vs2013에 /p:VisualStudioVersion=12.0을 사용하고 제대로 작동합니다.
Seyed Morteza Mousavi

/p:VisualStudioVersion=?VS 2017 의 가치는 무엇입니까 ?
산트

작성 스크립트 작성 msbuild test.sln /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=.\build_output1\pub /p:PublishProfile=FolderProfile /p:VisualStudioVersion=11.0 /p:outdir=.\build_output1 ......하지만 여전히 publish 폴더와 같은 모든 파일이 아닌 DLL 만 가져옵니다. (`
Nishant

@Nishant VS 2017의 경우을 사용하십시오 /p:VisualStudioVersion=15. 이것이 파일 복사 문제와 관련이 있는지 확실하지 않습니다.
크리스

38

나는 그런 해결책을 생각해 냈고 나를 위해 훌륭하게 일했다.

msbuild /t:ResolveReferences;_WPPCopyWebApplication /p:BuildingProject=true;OutDir=C:\Temp\build\ Test.csproj

비밀 소스는 _WPPCopyWebApplication 대상입니다.


1
_WPPCopyWebApplication은 무엇이며 어떻게 사용할 수 있습니까? MSBbuild xml 설정 파일 /
Johnny_D

4
VS2012 .NET 3.5를 사용하면 오류가 발생했습니다 error MSB4057: The target "_WPPCopyWebApplication" does not exist in the project. 이 부분을 활용하면 뷰를 배포하지 않고도 배포가 가능합니다.
Jay Sullivan

빌드는 c : \ program files (x86) \ msbuild \ microsoft \ visualstudio \ VERSION \ Webapplication \ Microsoft.WebApplication.targets의 대상을 사용하므로 다른 /p:VisualStudioVersion=12.0으로 호출해야 할 수도 있습니다. 올바른 대상이없는 이전 버전.
Jim Wolff

@FRoZeN MSBuild를 다음과 같이 사용하려고했습니다 MSBuild.exe C:\BuildAgent\work\4c7b8ac8bc7d723e\WebService.sln /p:Configuration=Release /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MsDeployServiceUrl=https://204.158.674.5/msdeploy.axd /p:username=Admin /p:password=Password#321 /p:AllowUntrustedCertificate=True /p:DeployIisAppPath=Default WebSite/New /p:MSDeployPublishMethod=WMSVC. 그것은 나에게 오류를 준다 MSBUILD : error MSB1008: Only one project can be specified. Switch: WebSite/New. 이에 대한 해결책이 있습니까?
Nevin Raj Victor

1
@NevinRajVictor이 오류는 DeployIisAppPath 값에 공백이 있기 때문에 발생합니다. 값을 따옴표로 묶어야합니다. 예를 들어 / P : DeployIisAppPath = "기본 웹 사이트 / 새"
표고 버섯

27

TeamCity를 모르므로 이것이 효과가 있기를 바랍니다.

내가 찾은 가장 좋은 방법은 MSDeploy.exe를 사용하는 것입니다. 이것은 Microsoft가 실행하는 WebDeploy 프로젝트의 일부입니다. 여기 에서 비트를 다운로드 할 수 있습니다 .

WebDeploy를 사용하면 명령 줄을 실행합니다

msdeploy.exe -verb:sync -source:contentPath=c:\webApp -dest:contentPath=c:\DeployedWebApp

이는 VS Publish 명령과 동일한 작업을 수행하여 필요한 비트 만 배포 폴더에 복사합니다.


유망 해 보인다. 그러나 관리 서비스는 Server 2008에서만 사용할 수있는 것 같습니다. 배포를 자동화하려는 준비 서버가 Windows 7 Pro를 실행하고 있습니다.
jrummell

2
제품에는 두 가지가 있습니다. IIS에 바로 통합되는 조각에는 Server 2008이 필요합니다. 명령 줄 구성 요소에는 해당 요구 사항이 없습니다. 배포에 사용하는 Server 2003 상자에서 실행 중입니다.
Jeff Siver

MSDeploy에서 약간의 독서를했습니다. 스테이징 서버에서 설치하고 작동합니다. 감사합니다! MSBuild 스크립트에서 MSDeploy를 실행할 수 있습니까?
jrummell

1
VS Publish 명령의 구성과 동일한 기능을 수행합니까? 파일 시스템 또는 기타 게시 방법 MyProject.Publish.xml 파일을 사용하여 복사 할 파일을 결정합니까?
Anthony

1
방금 샷을 주었지만 VS 게시와 동일하지 않습니다. 모든 소스 파일을 포함하여 XCopy와 동일하게 수행되었습니다.
Louis Somers

13

VisualStudio 2012에는 게시 프로파일없이 subj를 처리 할 수있는 방법이 있습니다. 매개 변수를 사용하여 출력 폴더를 전달할 수 있습니다. 'publishUrl'매개 변수의 절대 경로와 상대 경로 모두에서 작동합니다. VS100COMNTOOLS를 사용할 수 있지만에서 'WebPublish'대상을 사용하려면 VisualStudioVersion을 재정의해야합니다 %ProgramFiles%\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets. VisualStudioVersion 10.0을 사용하면이 스크립트는 출력없이 성공합니다 :)

업데이트 : Windows SDK 7.1 만 설치된 빌드 서버 (이 컴퓨터에는 Visual Studio 2010 및 2012 없음) 에서이 방법을 사용했습니다. 그러나 작동하려면 다음 단계를 따라야했습니다.

  1. Simmo answer를 사용하여 컴퓨터에서 Windows SDK 7.1을 최신 상태로 만듭니다 ( https://stackoverflow.com/a/2907056/2164198 )
  2. 레지스트리 키 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ SxS \ VS7 \ 10.0을 "C : \ Program Files \ Microsoft Visual Studio 10.0 \"으로 설정 (적절한 경로 사용)
  3. 내 개발자 컴퓨터에서 % ProgramFiles % \ MSBuild \ Microsoft \ VisualStudio \ v11.0 폴더를 빌드 서버로 복사

스크립트:

set WORK_DIR=%~dp0
pushd %WORK_DIR%
set OUTPUTS=%WORK_DIR%..\Outputs
set CONFIG=%~1
if "%CONFIG%"=="" set CONFIG=Release
set VSTOOLS="%VS100COMNTOOLS%"
if %VSTOOLS%=="" set "PATH=%PATH%;%WINDIR%\Microsoft.NET\Framework\v4.0.30319" && goto skipvsinit
call "%VSTOOLS:~1,-1%vsvars32.bat"
if errorlevel 1 goto end
:skipvsinit
msbuild.exe Project.csproj /t:WebPublish /p:Configuration=%CONFIG% /p:VisualStudioVersion=11.0 /p:WebPublishMethod=FileSystem /p:publishUrl=%OUTPUTS%\Project
if errorlevel 1 goto end
:end
popd
exit /b %ERRORLEVEL%

이 솔루션에 감사드립니다. 이것은 파일 시스템 배포가있는 WebPublish 옵션입니다.
woohoo

12

약간 다른 방식으로 작동하는 두 가지 솔루션을 찾았습니다.

1.이 용액 alexanderb로부터 응답 영감 [링크] . 불행히도 그것은 우리에게 효과가 없었습니다-일부 dll은 OutDir에 복사되지 않았습니다. 우리는 대체 것을 발견 ResolveReferences으로 Build지금 필요한 모든 파일은 OUTDIR 위치에 복사 - 대상하여 문제를 해결합니다.

msbuild / target : 빌드; _WPPCopyWebApplication / p : 구성 = 해제; OutDir = C : \ Tmp \ myApp \ MyApp.csproj
이 솔루션의 단점은 OutDir에 게시 용 파일 만 포함되어 있다는 것입니다.

2. 첫 번째 솔루션은 제대로 작동하지만 예상대로 작동하지 않습니다. 우리는 Visual Studio IDE에서와 같이 게시 기능을 원했습니다. 즉 게시해야하는 파일 만 출력 디렉터리에 복사됩니다. 이미 언급했듯이 첫 번째 솔루션은 훨씬 더 많은 파일을 OutDir에 복사합니다. 그런 다음 게시 웹 사이트가 저장됩니다_PublishedWebsites/{ProjectName} . 하위 폴더에 . 다음 명령은이 문제를 해결합니다. 게시 할 파일 만 원하는 폴더로 복사됩니다. 이제 직접 게시 할 수있는 디렉토리가 있습니다. 첫 번째 솔루션과 비교하여 하드 드라이브의 공간을 절약 할 수 있습니다.

msbuild / target : Build; PipelinePreDeployCopyAllFilesToOneFolder / p : Configuration = Release; _PackageTempDir = C : \ Tmp \ myApp \; AutoParameterizationWebConfigConnectionStrings = false MyApp.csproj
AutoParameterizationWebConfigConnectionStrings=false매개 변수는 연결 문자열이 특수 아티팩트로 처리되지 않고 올바르게 생성되도록합니다 . 자세한 정보는 링크를 참조 하십시오 .


옵션 # 2를 사용하면 더 이상 사용되지 않는 _CopyWebApplication을 완벽하게 제거 할 수있었습니다. VS 2015로 업그레이드 한 후 Build-Server를 구출했습니다. 훌륭한 연구. 감사합니다.
it3xl

옵션 # 2는 내 빌드 스크립트에 완벽했습니다.
AnthonyVO

3

환경을 설정해야합니다

  • <웹 사이트 이름>
  • <도메인>

내 블로그를 참조하십시오. (죄송한 게시물은 한국어였습니다)

  • http://xyz37.blog.me/50124665657
  • http://blog.naver.com/PostSearchList.nhn?SearchText=webdeploy&blogId=xyz37&x=25&y=7

    @ECHO OFF
    :: http://stackoverflow.com/questions/5598668/valid-parameters-for-msdeploy-via-msbuild
    ::-DeployOnBuild -True
    :: -False
    :: 
    ::-DeployTarget -MsDeployPublish
    :: -Package
    :: 
    ::-Configuration -Name of a valid solution configuration
    :: 
    ::-CreatePackageOnPublish -True
    :: -False
    :: 
    ::-DeployIisAppPath -<Web Site Name>/<Folder>
    :: 
    ::-MsDeployServiceUrl -Location of MSDeploy installation you want to use
    :: 
    ::-MsDeployPublishMethod -WMSVC (Web Management Service)
    :: -RemoteAgent
    :: 
    ::-AllowUntrustedCertificate (used with self-signed SSL certificates) -True
    :: -False
    :: 
    ::-UserName
    ::-Password
    SETLOCAL
    
    IF EXIST "%SystemRoot%\Microsoft.NET\Framework\v2.0.50727" SET FXPath="%SystemRoot%\Microsoft.NET\Framework\v2.0.50727"
    IF EXIST "%SystemRoot%\Microsoft.NET\Framework\v3.5" SET FXPath="%SystemRoot%\Microsoft.NET\Framework\v3.5"
    IF EXIST "%SystemRoot%\Microsoft.NET\Framework\v4.0.30319" SET FXPath="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319"
    
    SET targetFile=<web site fullPath ie. .\trunk\WebServer\WebServer.csproj
    SET configuration=Release
    SET msDeployServiceUrl=https://<domain>:8172/MsDeploy.axd
    SET msDeploySite="<WebSite name>"
    SET userName="WebDeploy"
    SET password=%USERNAME%
    SET platform=AnyCPU
    SET msbuild=%FXPath%\MSBuild.exe /MaxCpuCount:%NUMBER_OF_PROCESSORS% /clp:ShowCommandLine
    
    %MSBuild% %targetFile% /p:configuration=%configuration%;Platform=%platform% /p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=False /p:DeployIISAppPath=%msDeploySite% /p:MSDeployPublishMethod=WMSVC /p:MsDeployServiceUrl=%msDeployServiceUrl% /p:AllowUntrustedCertificate=True /p:UserName=%USERNAME% /p:Password=%password% /p:SkipExtraFilesOnServer=True /p:VisualStudioVersion=12.0
    
    IF NOT "%ERRORLEVEL%"=="0" PAUSE 
    ENDLOCAL

1

이 내 배치 파일

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe C:\Projects\testPublish\testPublish.csproj  /p:DeployOnBuild=true /property:Configuration=Release
if exist "C:\PublishDirectory" rd /q /s "C:\PublishDirectory"
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v / -p C:\Projects\testPublish\obj\Release\Package\PackageTmp -c C:\PublishDirectory
cd C:\PublishDirectory\bin 
del *.xml
del *.pdb

5
답변을 자세히 설명 할 수 있다면 좋을 것입니다. 배치 파일이 OP 문제를 어떻게 정확하게 해결합니까? 감사!
Luís Cruz

1

이것은 내 작업 배치입니다

publish-my-website.bat

SET MSBUILD_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin"
SET PUBLISH_DIRECTORY="C:\MyWebsitePublished"
SET PROJECT="D:\Github\MyWebSite.csproj"


cd /d %MSBUILD_PATH%
MSBuild %PROJECT%  /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=%PUBLISH_DIRECTORY%

in .Net Framework 폴더가 작동하지 MsBuild.exe않기 때문에 Visual Studio를 서버에 설치하여 실행할 수 MsBuild.exe있습니다.


msbuild test.sln /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=.\build_output1\pub /p:PublishProfile=FolderProfile /p:VisualStudioVersion=11.0 /p:outdir=.\build_output1 . 그러나 여전히 원하는 파일 구조가 아닌 DLL 만 가져옵니다. 무슨 일이야? :(
Nishant

1

아래 코드로 원하는 경로로 솔루션을 게시 할 수 있습니다. 여기 PublishInDFolder는 게시 해야하는 경로가있는 이름입니다 (아래 그림에서 만들어야 함)

이와 같은 게시 파일을 만들 수 있습니다

배치 파일 (.bat)에 2 줄 이하의 코드 추가

@echo OFF 
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsMSBuildCmd.bat"
MSBuild.exe  D:\\Solution\\DataLink.sln /p:DeployOnBuild=true /p:PublishProfile=PublishInDFolder
pause

0

공개 출력을 생성하려면 하나 이상의 매개 변수를 제공하십시오. msbuild example.sln / p : publishprofile = profilename / p : deployonbuild = true / p : configuration = debug / 또는

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.