我怎样才能清理发布文件夹,这样 DLL 就不会一直被复制到我的网站上?
How can I clean the publish folder so a DLL doesn't keep getting copied to my website?
在构建我的解决方案时,最新的 (v6.2.1) RabbitMQ.Client.dll 在这里结束:
C:\inetpub\wwwroot\MyProject\RabbitMQ.Client.dll
我不想要那个版本。我错误地在项目中引用了最新的 RabbitMQ.Client.dll DLL,然后撤消它并引用了以前的版本 (v5.1.2),但是新版本在构建时不断出现在 wwwroot 中(我们有一个 post-构建发布的事件)。
我清除了 NuGet 缓存,但它仍在发生。
我在我们的解决方案文件夹中搜索 RabbitMQ.Client.dll 并在我们的每个项目中找到了这些,所有 v6.2.1(新的,不是我想要的):
bin\Debug\netcoreapp2.2\publish\RabbitMQ.Client.dll
有没有办法清除那个文件夹?我猜这就是为什么错误的版本在 building/publishing 时一直以 wwwroot 结束。 运行 干净,在 VS 中,不这样做。
只需向每个项目的 csproj 文件添加一个自动 MSBuild 目标。
<Target Name="DeletePreviousPublish" BeforeTargets="_CheckForUnsupportedTargetFramework">
<RemoveDir Directories="$(PublishUrl.Remove($(PublishDir.LastIndexOf('\'))))"></RemoveDir>
</Target>
如果您的 $(PublishDir)
以 \
结尾,您应该使用 $(PublishDir.LastIndexOf('\')))
将其作为文件夹,以便 RemoveDir 可以工作。
如果没有,就用
<RemoveDir Directories="$(PublishDir)"></RemoveDir>
.
And 然后,当您点击Publish按钮时,它会先移除之前的发布文件夹并生成新的发布文件夹。它是自动的,因此您不再需要手动删除文件夹。
更新 1
这是一个很大的问题,应该自动删除以前的,然后使用最新使用的。从纯粹 vs 使用的角度来看,这是一个明显的问题。我已经举报 the issue on our DC Forum.
如果我没有详细描述问题,您可以投票并在 link 下添加任何评论。希望团队能解决这个问题。
因为这个过程需要很长时间,所以现在,你必须使用我的解决方案来获得你想要的。
在构建我的解决方案时,最新的 (v6.2.1) RabbitMQ.Client.dll 在这里结束: C:\inetpub\wwwroot\MyProject\RabbitMQ.Client.dll
我不想要那个版本。我错误地在项目中引用了最新的 RabbitMQ.Client.dll DLL,然后撤消它并引用了以前的版本 (v5.1.2),但是新版本在构建时不断出现在 wwwroot 中(我们有一个 post-构建发布的事件)。
我清除了 NuGet 缓存,但它仍在发生。
我在我们的解决方案文件夹中搜索 RabbitMQ.Client.dll 并在我们的每个项目中找到了这些,所有 v6.2.1(新的,不是我想要的):
bin\Debug\netcoreapp2.2\publish\RabbitMQ.Client.dll
有没有办法清除那个文件夹?我猜这就是为什么错误的版本在 building/publishing 时一直以 wwwroot 结束。 运行 干净,在 VS 中,不这样做。
只需向每个项目的 csproj 文件添加一个自动 MSBuild 目标。
<Target Name="DeletePreviousPublish" BeforeTargets="_CheckForUnsupportedTargetFramework">
<RemoveDir Directories="$(PublishUrl.Remove($(PublishDir.LastIndexOf('\'))))"></RemoveDir>
</Target>
如果您的 $(PublishDir)
以 \
结尾,您应该使用 $(PublishDir.LastIndexOf('\')))
将其作为文件夹,以便 RemoveDir 可以工作。
如果没有,就用
<RemoveDir Directories="$(PublishDir)"></RemoveDir>
.
And 然后,当您点击Publish按钮时,它会先移除之前的发布文件夹并生成新的发布文件夹。它是自动的,因此您不再需要手动删除文件夹。
更新 1
这是一个很大的问题,应该自动删除以前的,然后使用最新使用的。从纯粹 vs 使用的角度来看,这是一个明显的问题。我已经举报 the issue on our DC Forum.
如果我没有详细描述问题,您可以投票并在 link 下添加任何评论。希望团队能解决这个问题。
因为这个过程需要很长时间,所以现在,你必须使用我的解决方案来获得你想要的。