我使用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按钮时,我不再得到重复的文件。我已经在这里向微软提出了这个问题。