发布管道抛出以下错误:无法对给定包应用转换 - 包中已存在更改

And*_*rew 9 xslt azure-devops azure-pipelines azure-pipelines-release-pipeline

我在发布管道上使用文件转换 V2 任务来部署 ClickOnce 应用程序。

-transform **\*.Release.config -xml **\*exe.config.deploy
Run Code Online (Sandbox Code Playgroud)

我从来没有以这种方式转换和部署 ClickOnce 应用程序时遇到问题,但是,由于某种原因,在转换此特定应用程序时,我不断收到以下错误:

Unable to apply transformation for the given package - Changes are already present in the package.
Run Code Online (Sandbox Code Playgroud)

我仔细检查了我的构建管道,以确保在此步骤中没有执行转换,但看起来并非如此。有没有办法保证 app.config 上的转换不会在构建管道内发生,以防万一?

除此之外,我不知道问题是什么。我的任何管道中的任何地方都没有其他转换步骤,因此不应该有任何理由对其进行先发制人的转换,至少从我看来是这样。

奇怪的是,尽管它说它已经转变了,但在我看来根本没有发生转变。app.config 中的所有字符串和值仍然相同。

如果有人有任何想法,或者需要我提供具体的日志/信息,请告诉我。

Lan*_*SFT 7

我重现了该问题,发现它仅在任务找不到源文件时发生,请参阅:

在此输入图像描述

1.看来您正在使用类似于-xml **\*exe.config.deploy您的 trans 规则中的内容,请尝试使用**\*.exe.config.deploy而不是**\*exe.config.deploy

(或者使用有效的名称,如Name.exe.config.deploy,它在我这边效果很好)

2.如果上述建议无法解决您的问题,您还应该检查Package or folder (folderPath in yaml)文件转换任务的输入。确保系统可以xx.exe.config.deploy在正确的文件夹中找到该文件。

(通常该文件夹是$(System.DefaultWorkingDirectory),但不确定您是否做了一些更改,因此该文件位于另一个目录中......)