web網站和windows服務項目發布時如何排除指定檔案

來源:互聯網
上載者:User

標籤:存在   基於   view   技術   如何   實踐   項目   ide   使用方法   

  在發布asp.net網站和windows服務項目時,有的時候這樣的需求:msbuild編譯之後發布到伺服器指定目錄時要排除指定檔案,比如通過jenkins構建時,不希望覆蓋原來的Web.config和App.config,那麼該如何排除呢?

web網站項目

比如不希望發布Web.config檔案,有以下三種方法。

1,將項Content改為None

修改前:

1 <Content Include="Web.config" />

 

修改後:

1 <None Include="Web.config" />

  

2,使用項的Exclude屬性

如下代碼:

1 <Content Include="Web.config" Exclude="Web.config" />

 

注意:

這種方式雖然可以實現發布時排除,但是同時也從項目中排除了,對於本地開發調試不方便。

 

3,使用Target和ExcludeFromPackageFiles

添加新的Target節點,如下代碼:

1 <!--通過ExcludeFromPackageFiles排除Web.config-->2 <Target Name="CustomExcludeFiles" BeforeTargets="ExcludeFilesFromPackage">3 <ItemGroup>4   <ExcludeFromPackageFiles Include="Web.config"></ExcludeFromPackageFiles>5 </ItemGroup>6 </Target>
View Code

總結:最佳實務是使用方法3,既可以實現發布時排除,又能保證檔案存在於項目中,不影響本地開發和調試。

另外:

由於msbuild基於.csproj專案檔,所以以上操作都是修改.csproj檔案,修改方法如下:

1,卸載項目

如:

 

2,編輯csproj檔案

如:

 

windows服務項目

由於在windows服務項目中,App.config本來就是None類型的,且使用Target和ExcludeFromPackageFiles的方式不適用,所以暫時使用項的Exclude屬性實現。

修改前:

1 <None Include="App.config" />

 

修改後:

1 <None Include="App.config" Exclude="App.config" />
參考資料

1,https://stackoverflow.com/questions/6358635/exclude-files-from-web-site-deployment-with-msbuild

2,msbuild參考:https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild

 

web網站和windows服務項目發布時如何排除指定檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.