2013-03-20 36 views
0

我正在使用TFS生成來發布使用我已定義的發佈配置文件的網站。發佈會發生,但會發布到以Web應用程序項目名稱命名的Web應用程序,而不是我在發佈配置文件中指定的名稱。如果我使用相同的發佈配置文件發佈到本地計算機,它會使用我在發佈配置文件中指定的名稱進行發佈。我在這兩種情況下都使用管理帳戶,儘管它是TFS構建案例中的本地非域帳戶。TFS生成過程以不同於發佈配置文件中指定的名稱發佈網站

所使用的參數如下(與相關細節出於安全原因刪除):

/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:PublishProfile=MyProfile 
/p:AllowUntrustedCertificate=True /p:MSDeployPublishMethod=WMSVC 
/p:MSDeployServiceUrl=https://SomeName:8172/MsDeploy.axd 
/p:UserName=SomeName\LocalAdminDude /p:Password=SomePassword 

和發佈配置本身看起來是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
This file is used by the publish/package process of your Web project. You can customize  the behavior of this process 
by editing this MSBuild file. In order to learn more about this please visit  http://go.microsoft.com/fwlink/?LinkID=208121. 
--> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<PropertyGroup> 
    <WebPublishMethod>MSDeploy</WebPublishMethod> 
    <SiteUrlToLaunchAfterPublish/>http://Server/NameIWant</SiteUrlToLaunchAfterPublish> 
    <MSDeployServiceURL>https://Server:8172/msdeploy.axd</MSDeployServiceURL> 
    <DeployIisAppPath>Default Web Site/NameIWant</DeployIisAppPath> 
    <RemoteSitePhysicalPath /> 
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer> 
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod> 
    <UserName>Server\LocalAdminDude</UserName> 
    <_SavePWD>True</_SavePWD> 
</PropertyGroup> 
</Project> 

從本質上講,如果我的web項目被命名爲NameIWantPROJECT,我希望它發佈到一個名爲的網站NameIWant。如果我在本地發佈,這是有效的,如果我通過上述參數通過TFS,它會發布爲NameIWantPROJECT而不是我指定的內容。

+0

檢查在'構建definition'的'建立Defaults'標籤。也許有一些其他的放置文件夾比你想要的。 – TimVK 2013-03-21 09:13:10

+0

我相信我已經發現了答案。構建服務器是TFS 2010,Visual Studio是2012.它顯示TFS 2010不支持或識別PublishProfile屬性。發佈配置文件是2012年的新增功能,並且支持似乎沒有被回溯... – 2013-03-22 13:00:17

+0

很高興聽到您指出了這一點。現在看到答案仍然如你現在所做的那樣總是令人高興的。 – TimVK 2013-03-22 13:20:27

回答

0

嘗試使用/ p:DeployIisAppPath而不是/ p:PublishProfile。也就是說,添加以下參數。

/P:DeployIisAppPath = 「默認Web站點/ NameYouWant」

它的工作對我來說與2010年TFS