2012-07-24 18 views
0

我有兩個不同的方法來部署我的web應用程序 - 通過的IIS Web一個部署,通過的MSBuild參數的自定義生成模板掛鉤,並使用一鍵發佈內置於Visual Studio。我也安裝了慢速獵豹變換,並且可以成功transform Web.config文件。xml文檔轉換使用一鍵發佈,而不是Web部署

但是,我卡在Nlog.config文件。如果我使用單擊發佈,則webapp將使用更新的配置文件進行部署。但是,使用實際的構建過程,沒有任何變化。源Nlog.config文件被複制到遠程服務器上的放置位置,部署包和輸出文件夾。

.csproj文件Nlog設置方式爲web.config相同,即

<Content Include="NLog.config"> 
    <TransformOnBuild>true</TransformOnBuild> 
    <Content Include="Web.config"> 
    <SubType>Designer</SubType> 
    <TransformOnBuild>true</TransformOnBuild> 
<Content Include="NLog.Debug.config"> 
    <DependentUpon>NLog.config</DependentUpon> 
    <IsTransformFile>True</IsTransformFile> 

SlowCheetah預覽功能讓我知道,我的轉換文件都能很好地形成,以及。不知道我可能會錯過什麼。

回答

0

嗯,我真的很喜歡那個。多戳後,我發現我需要包括以下內容 -

<Import Project="TransformsFiles.targets" /> 
    <PropertyGroup> 
    <TransformOnBuild>true</TransformOnBuild> 
    </PropertyGroup> 

權的最終項目的標籤上面,作爲賽義德提到here。這實際上會轉換文件,但它們仍然不能成功部署。我將不得不添加一些後生成事件或其他事情來處理這些事情。不是最好的解決方案,但至少在工作。

更新:爲了理解,爲了部署這些文件,我必須編輯.csproj文件以包含新的目標並將它們手動轉儲到遠程服務器,但只能在轉換完成之後。看看你的日誌文件,看看發生了什麼,然後拿起轉換後的文件並將其移動到遠程服務器。這部分代碼看起來像這樣 -

<Target Name="PostTransformNLogConfig" AfterTargets="TransformAllFiles"> 
    <Copy Condition="Exists('d:\Builds\Binaries\NLog.config')" 
     SourceFiles="d:\Builds\NLog.config" 
     DestinationFiles="\\remoteserver\NLog.config" /> 
</Target> 
+1

使用SlowCheetah的最新版本,這不應該是必需的,它應該工作。 – 2012-11-29 05:12:16

相關問題