LoginSignup
0
1

More than 5 years have passed since last update.

ASP.NET MVCのモジュールをJenkinsで発行する

Posted at

デプロイモジュールを発行するために

msbuild target.sln /p:VisualStudioVersion=14.0 /p:DeployOnBuild=true /p:Configuration=targetStaging /p:PublishProfile=targetProfile

をjenkinsのジョブに登録し、実行すると以下のエラーが発生。

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets(132,5): error : 
Can't find the valid AspnetMergePath [C:\Jenkins\workspace\Common_Build\Apps\Pajdis.CommonAndPortal\Pajdis.CommonAndPortal\Pajdis.CommonAndPortal.csproj]

なにこれ。VisualStudioで発行するときに見たこと無いぞ。
とりあえずコマンドにAspnetMergePathを明示すれば動くだろ。

msbuild target.sln /p:VisualStudioVersion=14.0 /p:DeployOnBuild=true /p:Configuration=targetStaging /p:PublishProfile=targetProfile 
/p:AspnetMergePath="C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\"

よっしゃ実行だ!

MSBUILD : error MSB1008: 1 つのプロジェクトのみを指定できます。

なん。。だと。。。。動かない。。。

よくよく見ると

Path To MSBuild.exe: msbuild.exe
Executing the command cmd.exe /C " msbuild.exe /p:VisualStudioVersion=14.0 /p:DeployOnBuild=true /p:Configuration=DebugPajdis /p:PublishProfile=DebugPajdis "\p:AspnetMergePath=C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools"" Apps\Pajdis.CommonAndPortal\Pajdis.CommonAndPortal.sln " && exit %%ERRORLEVEL%% from C:\Jenkins\workspace\Common_Build
[Common_Build] $ cmd.exe /C " msbuild.exe /p:VisualStudioVersion=14.0 /p:DeployOnBuild=true /p:Configuration=DebugPajdis /p:PublishProfile=DebugPajdis '\p:AspnetMergePath=C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools"' Apps\Pajdis.CommonAndPortal\Pajdis.CommonAndPortal.sln " && exit %%ERRORLEVEL%%
Microsoft (R) Build Engine バージョン 4.6.1086.0
[Microsoft .NET Framework、バージョン 4.0.30319.42000]
Copyright (C) Microsoft Corporation. All rights reserved.

MSBUILD : error MSB1008: 1 つのプロジェクトのみを指定できます。
スイッチ:Apps\Pajdis.CommonAndPortal\Pajdis.CommonAndPortal.sln

スイッチの構文については、"MSBuild /help" と入力してください。
Build step 'MSBuildの実行' marked build as failure
Finished: FAILURE

jenkinsさんの解釈がおかしいのかな。うん。
というわけでCan't find the valid AspnetMergePathで検索。
ここにたどり着いた。

結局、最初のエラーメッセージで指摘されたMicrosoft.Web.Publishing.AspNetCompileMerge.targetsを修正した。

  <Target
      Name="GetAspNetMergePath"
      DependsOnTargets="$(GetAspNetMergePathDependsOn)"
      Condition ="'$(GetAspNetMergePath)' != 'false'">
    <PropertyGroup>
      <!--追加する行-->
      <TargetFrameworkSDKToolsDirectory>C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\</TargetFrameworkSDKToolsDirectory>
      <!--おわり-->
      <AspnetMergeName>aspnet_merge.exe</AspnetMergeName>
      <AspnetMergePath Condition="Exists('$(TargetFrameworkSDKToolsDirectory)$(AspnetMergeName)')">$(TargetFrameworkSDKToolsDirectory)</AspnetMergePath>
    </PropertyGroup>
    <Error Condition="'$(AspnetMergePath)' == '' Or !Exists($(AspnetMergePath))"
           Text="Can't find the valid AspnetMergePath" />
  </Target>

これで最初のジョブを実行することで無事にデプロイモジュールがjenkinsから発行できるように。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1