我正在尝试使用 TFS 构建发布 WCF 服务,但构建失败。
我尝试在 TFS 的 VSBuild 中使用给定的参数:
/p:DeployOnBuild=True /p:PublishProfile=TestDataProfile /p:PublishProfileRootFolder=$(RelativePath)\Properties\PublishProfiles
发生这种情况是因为 sln 中有两个 WCF 服务,因此构建失败,因为它无法在其他服务中找到配置文件。
如何确保只接受一个服务项目而不是一个?
我尝试在 TFS 中使用 MSBuild 任务仅构建一个 csproj,方法是将其作为参数,
/目标:服务.csproj
这会导致失败,说找不到目标。
我还尝试在 TFS 中使用 MSBuild 构建一个 csproj,但出现以下错误:
Cannot determine the packages folder to restore NuGet packages. Please specify either -PackagesDirectory or -SolutionDirectory.
编辑:通过调试 metaproj 文件解决了这个问题,我得到了正确的参数。
现在,在发布到 TFS 服务器时,PublishUrl 具有 TFS 服务器位置的路径,例如“(服务器 IP 地址)/文件夹/PublishService”。
这通过显示给定的问题导致失败:
Publish Pipeline Deploy phase Stage PipelinePreDeployCopyAllFilesToOneFolder
WebFileSystemPublish:
Creating directory "\\Server ip\VishalBuildTest\ServiceData".
[error]C:\ProgramFiles(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Deploy\Microsoft.Web.Publishing.Deploy.FileSystem.targets(93,5): Error MSB3191: Unable to create directory "\\Server ip\VishalBuildTest\ServiceData". Access to the path '\\Server ip\VishalBuildTest\ServiceData' is denied.
运行它需要什么权限?
从 MSBuild 命令提示符执行此操作时效果很好。
任何帮助表示赞赏。