MSBuild 没有在请求的地方放置文件
MSBuild not placing files where requested
所以在使用 TFS 2015 构建定义的 MSbuild 中遇到了一个非常奇怪的问题。
我尝试构建的 Web 应用程序有多个 csprojs,它们在整个应用程序中用作 class 库,当然还有我的实际 Web 应用程序。
下面是我目前正在传递的 MSBuild 参数,以获得完全完成的构建。
/p:UseWPP_CopyWebApplication=True
/p:PipelineDependsOnBuild=False /p:OutDir=C:\Agent\_work\s\Application\Package\bin\
/p:WebProjectOutputDir=C:\Agent\_work\s\Application\Package\WebSite\
/p:NoWarn=0067
/v:Minimal
我真正想做的是以下内容。
/p:UseWPP_CopyWebApplication=True
/p:PipelineDependsOnBuild=False /p:OutDir=C:\Agent\_work\s\Application\Package\Website\bin\
/p:WebProjectOutputDir=C:\Agent\_work\s\Application\Package\WebSite\
/p:NoWarn=0067
/v:Minimal
我 运行 遇到的问题是在第一个程序集被 运行 并放置在 bin 文件夹之后,它然后在主 webproject csproj 上工作并抛出无法定位文件以进行复制消息.
我不明白为什么会这样?是因为 MSBuild 期望 bin 文件夹在 empty/not 那里吗?
我是不是在构建顺序中遗漏了什么,或者需要传递不同的参数。我也必须尝试'outpath'。
在第二个参数中,"OutDir"路径与"WebProjectOutputDir"相同。这是因为 MSBuild 将在 运行“_WPPCopyWebApplication”任务将文件复制到 "WebProjectOutputDir" 文件夹之前清理 "WebProjectOutputDir" 文件夹。这意味着构建期间在 "OutDir" 中生成的文件将被清除,因为它使用与 "WebProjectOutputDir" 相同的路径,因此任务将无法找到要复制的文件。
为避免此问题,您可以将 "OutDir" 更改为 "WebProjectOutputDir" 或再添加一个参数:
/p:CleanWebProjectOutputDir=False
所以在使用 TFS 2015 构建定义的 MSbuild 中遇到了一个非常奇怪的问题。
我尝试构建的 Web 应用程序有多个 csprojs,它们在整个应用程序中用作 class 库,当然还有我的实际 Web 应用程序。
下面是我目前正在传递的 MSBuild 参数,以获得完全完成的构建。
/p:UseWPP_CopyWebApplication=True
/p:PipelineDependsOnBuild=False /p:OutDir=C:\Agent\_work\s\Application\Package\bin\
/p:WebProjectOutputDir=C:\Agent\_work\s\Application\Package\WebSite\
/p:NoWarn=0067
/v:Minimal
我真正想做的是以下内容。
/p:UseWPP_CopyWebApplication=True
/p:PipelineDependsOnBuild=False /p:OutDir=C:\Agent\_work\s\Application\Package\Website\bin\
/p:WebProjectOutputDir=C:\Agent\_work\s\Application\Package\WebSite\
/p:NoWarn=0067
/v:Minimal
我 运行 遇到的问题是在第一个程序集被 运行 并放置在 bin 文件夹之后,它然后在主 webproject csproj 上工作并抛出无法定位文件以进行复制消息.
我不明白为什么会这样?是因为 MSBuild 期望 bin 文件夹在 empty/not 那里吗?
我是不是在构建顺序中遗漏了什么,或者需要传递不同的参数。我也必须尝试'outpath'。
在第二个参数中,"OutDir"路径与"WebProjectOutputDir"相同。这是因为 MSBuild 将在 运行“_WPPCopyWebApplication”任务将文件复制到 "WebProjectOutputDir" 文件夹之前清理 "WebProjectOutputDir" 文件夹。这意味着构建期间在 "OutDir" 中生成的文件将被清除,因为它使用与 "WebProjectOutputDir" 相同的路径,因此任务将无法找到要复制的文件。
为避免此问题,您可以将 "OutDir" 更改为 "WebProjectOutputDir" 或再添加一个参数:
/p:CleanWebProjectOutputDir=False