Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Team Build 2010和web.config转换存在问题_Asp.net_Web Config_Tfsbuild - Fatal编程技术网

Asp.net Team Build 2010和web.config转换存在问题

Asp.net Team Build 2010和web.config转换存在问题,asp.net,web-config,tfsbuild,Asp.net,Web Config,Tfsbuild,我正在努力让web.config转换与自动构建一起工作 我们有一个相当大的解决方案,包含一个ASP.NET web应用程序和八个类库。我们有三个开发人员在处理这个项目,到目前为止,每个开发人员都已将解决方案“发布”到本地文件夹,然后使用文件副本部署到测试服务器。我正在尝试使用TFS2010实现自动构建/部署解决方案 我创建了一个构建定义,并在构建过程模板中添加了对msdeploy.exe的调用,以将应用程序部署到测试服务器。到目前为止,一切都很好 然后我尝试实现web.config转换,但我就是

我正在努力让web.config转换与自动构建一起工作

我们有一个相当大的解决方案,包含一个ASP.NET web应用程序和八个类库。我们有三个开发人员在处理这个项目,到目前为止,每个开发人员都已将解决方案“发布”到本地文件夹,然后使用文件副本部署到测试服务器。我正在尝试使用TFS2010实现自动构建/部署解决方案

我创建了一个构建定义,并在构建过程模板中添加了对msdeploy.exe的调用,以将应用程序部署到测试服务器。到目前为止,一切都很好

然后我尝试实现web.config转换,但我就是无法让它们工作。如果我在PC上本地生成并发布,“发布”文件夹中包含正确的转换后的web.config文件

使用TeamBuild,转换不会发生,我只有基本的web.config文件

正如其他人所建议的,我尝试在web应用程序的项目文件中添加构建后步骤,类似于:

<target name="AfterBuild">
<TransformXml Source="Web.generic.config"
             Transform="$(ProjectConfigTransformFileName)"
             Destination="Web.Config" />
</target>
但是当类库项目被构建时,这种情况就会发生,可能是因为它们没有web.config文件

有什么想法吗?和其他人一样,我认为这会“奏效”,但显然不行。这是我需要开始工作的最后一部分,它让我发疯。我不是msbuild专家,请简单明了

提前谢谢


Doug

我没有尝试通过将任务添加到构建过程模板中来进行部署,而是遵循Vishal Joshi博客文章中的建议

现在,整个项目已经构建和部署,web.config转换也可以工作了。太棒了

我现在还有一个问题要解决!web应用程序引用web服务,构建过程将生成XmlSerializers dll。但是,尽管这是正常构建的,但它不会部署到web主机上。我想这需要一个新的职位


道格

我刚刚经历了这个。我们的构建有点复杂,因为我们在一个解决方案中有8个类库和9个web应用程序。但流程是一样的

首先,摆脱你的后构建目标。你不需要那个

您需要使用MSDeployPublish服务。这需要在目标服务器上正确安装和配置它。有关此部件的信息,请查看以下链接:

请注意,必须使用正确的用户权限正确配置有问题的服务器。以下网站帮助我正确设置了它



下一部分要求您的生成定义设置正确的MSBuild参数以进行发布。这些参数在生成定义的Process>3.Advanced>MS Build Arguments行中输入。这里有一个提示:

(don't change the following for any reason)
/p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=False 
/p:MSDeployPublishMethod=WMSVC 
/p:SkipExtraFilesOnServer=True
/p:AllowUntrustedCertificate=True 

(These control where it's going)

/p:MSDeployServiceUrl="https://testserver.domain:8172/msdeploy.axd" 
/p:UserName=testserver\buildaccount 
/p:Password=buildacctpassword 
/p:DeployIisAppPath="MyApp - TESTING" 
显然,必须在目标服务器上的IIS中配置用户才能访问该axd(请参阅前面的链接)。IISAPPATH是目标服务器上网站的名称


您不必为配置转换做任何特殊的事情,因为构建本身将为您解决这一问题。只需在Process>1的行中设置正确的设置即可。必需>要生成的项目>要生成的配置。

只是一个旁注。这其中有两个困难的部分。首先是在web服务器上正确安装MSDeployService。第二个是找出所有正确的MSBuild参数。Doug提到的一些站点的目标是在同一台机器上构建和部署,因此它们的参数不起作用。总而言之,我花了大约6个小时才弄清楚第一次通过。现在它已经设置好了,我可以在大约5分钟内创建一个新的构建定义。很棒的帖子Chris,我也完成了所有这一切(花了我一点时间,部分是因为服务器上有一些奇怪的地方,部分是因为使用了托管tfs),但是这个主题的总结非常好。另一个旁注:我上周在一个新服务器上设置了这个。MSDeploy的最新安装程序比前一个好得多。在这里找到了XmlSerializers问题的答案
(don't change the following for any reason)
/p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=False 
/p:MSDeployPublishMethod=WMSVC 
/p:SkipExtraFilesOnServer=True
/p:AllowUntrustedCertificate=True 

(These control where it's going)

/p:MSDeployServiceUrl="https://testserver.domain:8172/msdeploy.axd" 
/p:UserName=testserver\buildaccount 
/p:Password=buildacctpassword 
/p:DeployIisAppPath="MyApp - TESTING"