所以開始動工吧!
/P:VisualStudioVersion=12.0 /P:DeployOnBuild=True /P:DeployTarget=MSDeployPublish /P:MsDeployServiceUrl=https://TESTWEB2:8172/msdeploy.axd /P:AllowUntrustedCertificate=True /P:MSDeployPublishMethod=WMSvc /P:DeployIisAppPath=xxxxx /P:CreatePackageOnPublish=True /P:UserName=帳號/P:Password=密碼
接下來測試一下!
缺少DLL檔
所以我們必需要針對MSBuild進行客製化,將我們需要的檔案移轉到我們要進行Deploy的Package的目錄,讓部署的時侯可以包含這些檔案。
但是如何客製化呢?
請這樣做
先卸載專案
編輯專案檔
請在文件最後面的地方加上
上面的行為如下:
我們定義二個 itemgroup 分別為:BinFiles 、SourceFile
BinFiles 我們定義的是MSBuild時,產生的路徑中全部的DLL檔案
SourceFile 我們定義的是使用 BinFiles的路徑
接下來 目標 Target 動作
我們定義了二個properties
AfterTargets(在這個事件之後) CopyAllFilesToSingleFolderForMsdeploy 我們要執行下列動作
Name AdditionalFilesForPackage 這個是在LOG會顯示的TAG
Message: 顯示在LOG上的訊息
Copy:我們要COPY的檔案路徑、目標位置、條件
詳細內容請參考 :MSDN
以上動作就會將DLL COPY到PackageTempDir 讓MSDeploy進行封裝的動作。
比較困難的地方是語法的設定,因為MSDN上也沒有寫的非常的清楚。
所以我們必需要針對MSBuild進行客製化,將我們需要的檔案移轉到我們要進行Deploy的Package的目錄,讓部署的時侯可以包含這些檔案。
但是如何客製化呢?
請這樣做
先卸載專案
編輯專案檔
<ItemGroup >
<BinFiles Include="$(OutDir)**\*.dll" />
<SourceFile Include="@(BinFiles)" />
</ItemGroup>
<Target Name="AdditionalFilesForPackage" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
<Message Text="Test COPY Binaries Dll Start"/>
<Copy SourceFiles="%(SourceFile.FullPath)" DestinationFolder="$(_PackageTempDir)\bin" Condition="$([System.String]::Copy(%(SourceFile.Filename)).Contains('關鍵字'))" />
<Message Text="Test COPY Binaries Dll End"/></Target>
上面的行為如下:
我們定義二個 itemgroup 分別為:BinFiles 、SourceFile
BinFiles 我們定義的是MSBuild時,產生的路徑中全部的DLL檔案
SourceFile 我們定義的是使用 BinFiles的路徑
接下來 目標 Target 動作
我們定義了二個properties
AfterTargets(在這個事件之後) CopyAllFilesToSingleFolderForMsdeploy 我們要執行下列動作
Name AdditionalFilesForPackage 這個是在LOG會顯示的TAG
Message: 顯示在LOG上的訊息
Copy:我們要COPY的檔案路徑、目標位置、條件
詳細內容請參考 :MSDN
以上動作就會將DLL COPY到PackageTempDir 讓MSDeploy進行封裝的動作。
比較困難的地方是語法的設定,因為MSDN上也沒有寫的非常的清楚。





沒有留言:
張貼留言