2017-02-24 67 views
1

我有一个非常简单的场景。我有一个ASP.NET Core项目(.NET Framework),其中包含WebDeploy的PublishProfile。我也有.NET Core Class Library项目(.Net Framework),它引用了我的服务,这是我的测试项目。当我在TeamCity上构建此解决方案时,我有一个Visual Studio Build步骤,其中包含一些用于webdeploy的其他参数,其中包括/ p:DeployOnBuild = true。但问题是DeployOnBuild是一个全局设置,因此它将应用于所有“服务”项目。我不知道为什么,但我的测试项目被公布为可发布的,所以它也会尝试部署测试项目,并且最终会出现一个错误,即它无法在测试项目中找到发布配置文件。如何在.sln或.xproj中告诉我这不是可发布项目,我不希望它成为发布过程的一部分?我发现一些解决方案忽略服务项目,但这是一个非常简单的情况,所以我认为我不应该使用任何黑客来实现这一点。使用TeamCity部署ASP.NET Core项目并忽略测试 - WebDeploy

回答

1

我怀疑,当您在部署步骤中定位.sln时,您告诉他在.sln文件中部署任何可部署的projet。 您是否尝试将目标文件转换为目标文件?

我没有使用Visual Studio生成的一步,但它的MSBuild工作: see screenshot

+0

是的,我试了一下。这里的问题是,我无法单独构建这个项目,因为这个项目中有一个后期构建步骤,它复制了一些文件,并且出现无法复制这些文件的错误,因为无法找到路径。当我单独构建它时,它看起来像$(SolutionDir)没有在此项目中正确设置。该后期构建活动是参考的nuget包之一。你碰巧知道“可部署”项目如何被识别? – MistyK

+0

我没有自己尝试过,但是如果你创建了一个构建配置'deployment',只需要构建webapp和任何需要的依赖项,除了你的测试工程,然后在TeamCity上使用开关'/ p:Configuration = deployment'? – dbraillon

+0

谢谢你。无论如何,这是我想避免的解决方法之一。我认为应该有一个比这更简单的方法。 – MistyK