Visual Studio 2019:"delete existing files" 发布配置文件中的选项消失了
Visual Studio 2019: "delete existing files" option in publish profile disappeared
我刚刚将 Visual Studio
的副本更新为 16.10
版本,然后发生了一些奇怪的事情:发布项目时,“删除现有文件”选项不再可编辑。您可以看到它,但是当打开编辑对话框时,没有复选框可以编辑它。
这里有一个截图来说明:
这是一个错误,还是有意为之?
是否有其他方法来设置该选项,或者它不再受支持?
我最初尝试将 <DeleteExistingFiles>true</DeleteExistingFiles>
添加到 pubxml 文件(在 VS 的 Properties 文件夹下)。不幸的是,这只会更新发布对话框,但对发布过程没有明显影响。
对于我的解决方法,我选择将此添加到构建事件:del /S /Q $(TargetDir)publish
。它会在每次构建时清除我的发布目录——您必须更改“$(TargetDir)publish”以满足您的需要。解决方法有点矫枉过正,但可以说是更好的选择,因为在最近的 change/build.
之后,发布的文件被提取的可能性较小
在文本编辑器中打开 .pubxml 文件(我的是 Properties\PublishProfiles),update/add 将 DeleteExistingFiles 键设为 True。
我刚刚将 Visual Studio 更新到版本 16.11,他们似乎修复了它,该选项又回到了设置菜单中:
我认为关于@Phil 的回答,这两个动作在做不同的事情。
1。删除现有文件
这将在您实际部署时删除 Web 服务器上的现有文件。我没有看到任何来自 Microsoft 的有关此设置的文档,这令人沮丧。当您将应用程序发布到 Web 部署包并使用 IIS 中的导入功能导入应用程序时,同样的 功能 可用。你会得到这样的提示:
这与发布配置文件中的 DeleteExistingFiles
相同。
2。发布目录
删除publish
目录是另一回事。发布目录是 msbuild /t:Publish
或 msbuild /t:Package
命令的工作目录。基本上,发布目录中的内容最终会出现在用于 Web 部署包或发布配置文件的 ZIP 文件中。如果发布目录中的文件不正确,您可能会在发布过程中遇到问题。例如,https://github.com/scottksmith95/LINQKit/issues/157。
遗憾的是,无法使用现有的 msbuild 或 dotnet cli 命令删除或清理发布目录:
https://github.com/dotnet/sdk/issues/5972.
欢乐时光。所以@Phil 的 del
命令就是我们剩下的。
我刚刚将 Visual Studio
的副本更新为 16.10
版本,然后发生了一些奇怪的事情:发布项目时,“删除现有文件”选项不再可编辑。您可以看到它,但是当打开编辑对话框时,没有复选框可以编辑它。
这里有一个截图来说明:
这是一个错误,还是有意为之? 是否有其他方法来设置该选项,或者它不再受支持?
我最初尝试将 <DeleteExistingFiles>true</DeleteExistingFiles>
添加到 pubxml 文件(在 VS 的 Properties 文件夹下)。不幸的是,这只会更新发布对话框,但对发布过程没有明显影响。
对于我的解决方法,我选择将此添加到构建事件:del /S /Q $(TargetDir)publish
。它会在每次构建时清除我的发布目录——您必须更改“$(TargetDir)publish”以满足您的需要。解决方法有点矫枉过正,但可以说是更好的选择,因为在最近的 change/build.
在文本编辑器中打开 .pubxml 文件(我的是 Properties\PublishProfiles),update/add 将 DeleteExistingFiles 键设为 True。
我刚刚将 Visual Studio 更新到版本 16.11,他们似乎修复了它,该选项又回到了设置菜单中:
我认为关于@Phil 的回答,这两个动作在做不同的事情。
1。删除现有文件
这将在您实际部署时删除 Web 服务器上的现有文件。我没有看到任何来自 Microsoft 的有关此设置的文档,这令人沮丧。当您将应用程序发布到 Web 部署包并使用 IIS 中的导入功能导入应用程序时,同样的 功能 可用。你会得到这样的提示:
这与发布配置文件中的 DeleteExistingFiles
相同。
2。发布目录
删除publish
目录是另一回事。发布目录是 msbuild /t:Publish
或 msbuild /t:Package
命令的工作目录。基本上,发布目录中的内容最终会出现在用于 Web 部署包或发布配置文件的 ZIP 文件中。如果发布目录中的文件不正确,您可能会在发布过程中遇到问题。例如,https://github.com/scottksmith95/LINQKit/issues/157。
遗憾的是,无法使用现有的 msbuild 或 dotnet cli 命令删除或清理发布目录:
https://github.com/dotnet/sdk/issues/5972.
欢乐时光。所以@Phil 的 del
命令就是我们剩下的。