그러나이 프로젝트 유형에 대한 PublishProfile을 만드는 방법은 없습니다. 게시를 클릭하면 기본 게시 마법사가 나타나고 게시 설정은 .csproj 파일이 아닌 .pubxml 파일에 저장됩니다. 그렇다면 어떻게 특정 프로젝트를 게시하도록 요청할 수 있습니까?
PublishProfile
은 웹 프로젝트에 한 번 클릭하지 않고 사용됩니다. "기본 게시 마법사 및 게시 설정은 .pspxml 파일이 아닌 .csproj 파일에 저장됩니다."이므로 PublishProfile
은 올바른 옵션이 아니어야합니다.
당신은 MSBuild와 솔루션에서 특정 프로젝트를 게시 할 경우
는 간단한 방법처럼, 전체 솔루션을 구축 할 수 있지만, 하나 개의 프로젝트 파일을 게시 할 수 있습니다 :
msbuild.exe "ProjectName.csproj" /target:publish /p:PublishDir="$(build.artifactstagingdirectory)\
구축하고 하나의 명령 줄을 사용하는 경우 게시는 지속성입니다. 게시하려는 프로젝트 파일에 프로젝트를 게시하는 대상을 사용자 정의 할 수 있습니다. For example :이 사용자 정의 목표와
<PropertyGroup>
<!-- the folder of the project to build -->
<ProjLocation>..\YourProjectFolder</ProjLocation>
<ProjLocationReleaseDir>$(ProjLocation)\bin\Release</ProjLocationReleaseDir>
<ProjPublishLocation>$(ProjLocationReleaseDir)\app.publish</ProjPublishLocation>
<!-- This is the web-folder, which provides the artefacts for click-once. After this
build the project is actually deployed on the server -->
<DeploymentFolder>D:\server\releases\</DeploymentFolder>
</PropertyGroup>
<Target Name="Publish" DependsOnTargets="Clean">
<Message Text="Publish-Build started for build no $(ApplicationRevision)" />
<MSBuild Projects="$(ProjLocation)/YourProject.csproj" Properties="Configuration=Release" Targets="Publish"/>
<ItemGroup>
<SchoolPlannerSetupFiles Include="$(ProjPublishLocation)\*.*"/>
<SchoolPlannerUpdateFiles Include="$(ProjPublishLocation)\Application Files\**\*.*"/>
</ItemGroup>
<Copy
SourceFiles="@(SchoolPlannerSetupFiles)"
DestinationFolder="$(DeploymentFolder)\"
/>
<Copy
SourceFiles="@(SchoolPlannerUpdateFiles)"
DestinationFolder="$(DeploymentFolder)\Application Files\%(RecursiveDir)"
/>
<CallTarget Targets="RestoreLog"/>
</Target>
<Target Name="Clean">
<Message Text="Clean project:" />
<MSBuild Projects="$(ProjLocation)/YourProject.csproj" Properties="Configuration=Release" Targets="Clean"/>
</Target>
, 당신은 단지 솔루션을 구축해야 할 프로젝트를 게시 할 필요가 없습니다.
희망이 도움이됩니다.
솔루션을 빌드하고 하나의 MSBuild 명령 줄로만 특정 프로젝트를 게시 하시겠습니까? 'msbuild "xx.csproj"/ target : publish/p : PublishDir = "$ (build.artifactstagingdirectory) \"'명령 줄을 사용하여 특정 프로젝트를 게시하는 방법은? –