. net 5 ClickOnce在PublishDir中创建了重复部署



我使用msbuild(版本17.1.0+ae57d105c,从VS 2022开发人员命令提示符)使用命令行将ClickOnce . net 5应用程序发布到UNC路径。因此,我正在运行相当于

的内容。
>msbuild /t:publish -p:PublishProfile=.PropertiesPublishProfilesClickOnceProfile.pubxml /p:PublishDir=\someuncpath

正如预期的那样,这会将许多文件移动到\someuncpath。如果我在。net 5之前这样做,我通常会期望像

这样的文件
\someuncpathsetup.exe
\someuncpathApplication FilesMyApp_1_0_0_9SomeLibrary.dll.deploy

但是如果我使用上面的命令,或者如果我从Visual Studio发布,我也会在PublishDir的根目录下得到一堆文件,

\someuncpathSomeLibrary.dll

考虑到这在早期版本中没有发生,我假设这些文件是多余的,它们只是噪音。但它们为什么被创造出来呢?我能摆脱它们吗?

根据我的经验,这是当您在.pubxml配置文件中将<PublishDir><PublishUrl>设置为相同值时发生的错误。这似乎是一个合理的事情,因为根据这些文档

PublishUrl是应用程序将在IDE中发布到的位置。

MSBuild系统使用PublishDir选项指定输出的位置

这听起来像你应该设置两个标签,如果你想从VS和从命令行发布。但是,如果将它们都设置为相同的值,则会得到所有重复的文件。如果我将<PublishDir>设置为一些随机的临时目录,当我在VS.

中点击Publish按钮时,我不再得到重复的文件。我已经在这里向微软提出了这个问题。

最新更新