April 13, 2014

SlowCheetah無法轉換組態設定檔

在build server上佈署網站至staging server後,網站無法正常運作。檢查了一下設定檔(*.config)發現裡面的設定不是為staging server所用,懷疑Staging組態下設定檔未被成功轉換輸出。在本機切換至Staging組態並重新建置網站,檢查bin\Staging下所轉換出的設定檔也發現並未轉換成功。

查看了一下專案檔內容,發現SlowCheetah所用到的PropertyGroup
<PropertyGroup Label="SlowCheetah">
  <SlowCheetahToolsPath>$([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\..\packages\SlowCheetah.2.5.10.3\tools\))</SlowCheetahToolsPath>
  <SlowCheetah_EnableImportFromNuGet Condition=" '$(SC_EnableImportFromNuGet)'=='' ">true</SlowCheetah_EnableImportFromNuGet>
  <SlowCheetah_NuGetImportPath Condition=" '$(SlowCheetah_NuGetImportPath)'=='' ">$([System.IO.Path]::GetFullPath( $(MSBuildProjectDirectory)\Properties\SlowCheetah\SlowCheetah.Transforms.targets ))</SlowCheetah_NuGetImportPath>
  <SlowCheetahTargets Condition=" '$(SlowCheetah_EnableImportFromNuGet)'=='true' and Exists('$(SlowCheetah_NuGetImportPath)') ">$(SlowCheetah_NuGetImportPath)</SlowCheetahTargets>
</PropertyGroup>
被移動到
<Import Project="$(SlowCheetahTargets)" Condition="Exists('$(SlowCheetahTargets)')" Label="SlowCheetah" />

之後

查了一下版控的歷史紀錄,PropertyGroup原是放在Import之前,在把順序重新移動再建置後,已可順利地轉換設定檔。至於為何PropertyGroup被移動了,目前還無法確認實際原因,似乎是在我加入了其它新的組態設定檔後,Visual Stuio把它移動了。有國外的開發人員也提出這個問題,不過是在將SlowCheetah由2.5.10.2升級到2.5.10.3後發生,最後也是以手動方式修改專案檔來解決。

No comments: