2009-12-08 37 views
4

經過一週的努力,我剛剛在IIS7上獲得了msdeploy處理程序(詛咒它的後援文檔)。所以知道我有一個簡單的同步「工作」,但我想在清單中移動儘可能多的-sync參數,而不是將其嵌入到MSBUILD任務中。下面是部署命令行:如何創建包含用戶名和密碼等目標屬性的msdeploy清單?

msdeploy.exe -verb:sync 
    -source:package="D:\Projects\Packaged.zip" 
    -dest:iisApp="beta.mysite.com", 
     wmsvc=ops.mysite.com, 
     username=deployUser, 
     password=secret, 
     skipAppCreation=true 
    -allowUntrusted=true 

我發現了很多的包含iisApp路徑清單的例子,但它們通常在其他位移動到一個參數文件(我猜)用戶條目。有沒有像這樣簡單:

<!-- Pseudo-code manifest --> 
<msdeploy.iisApp> 
    <iisApp path="beta.mysite.com"> 
    <param key="wmsvc" value="ops.mysite.com"/> 
    <param key="SkipAppCreation" value="true"/> 
    <param key="username" value="deployUser"/> 
    <param key="password" value="secret"/> 
    </iisApp> 
</msdeploy.iisApp> 

回答

5

不完全相同的情況,但可能會給一些想法。
這就是我們試圖用msdeploy更新數據庫的原因。
首先,我們創建了一個manifest.xml中,我們告訴msdeploy dbFullSql提供商到哪裏尋找我們的SQL腳本:

<sitemanifest> 
    <dbfullsql path="test1.sql"/> 
    <dbfullsql path="test2.sql"/> 
    <dbfullsql path="test3.sql"/> 
</sitemanifest> 

然後你需要一個指定的數據庫連接字符串parameter.xml:

<parameters> 
    <parameter 
    name="ConnectionString" 
    value="Data Source=localhost;uid=user;password=pass;multipleactiveresultsets=false;Initial Catalog=Db_name"> 
    <parameterEntry type="ProviderPath" scope="dbFullSql"/> 
</parameter> 

現在我們已經準備好與我們的清單創建一個包:

msdeploy.exe -verb:sync -source:manifest="manifest.xml" -dest:package="package.zip" 

最後部署:

msdeploy.exe -verb:sync -source:package="package.zip" -dest:auto -setParamFile="parameter.xml" 

所以你可以看到你是如何保持你的參數在一個單獨的文件。神奇!

相關問題