gpt4 book ai didi

.net - ClickOnce - 文件已存在错误 - 为什么 ClickOnce 尝试将 DLL 文件复制两次?

转载 作者:行者123 更新时间:2023-12-03 03:22:17 28 4
gpt4 key购买 nike

ClickOnce 是否仅查看应用程序 list 文件来确定将哪些 dll 文件复制到客户端计算机,还是还询问程序集的内部结构以确定依赖项文件?

我之所以问这个问题,是因为我在尝试启动已使用 ClickOnce 发布的 WPF .NET 4 应用程序时收到以下 ClickOnce 错误: 文件 C:\Users\CNelson\AppData\Local\Temp\Deployment\PGX6P33A.35N\AJQL8AC8.D60\tx16_rtf.dll 已存在。

此错误是在我包含对两个第 3 方 .NET dll 的引用后开始的,这两个 DLL 都引用了非托管 dll 文件 (tx16_rtf.dll)。我希望将 tx16_rtf.dll 复制到客户端 PC 上的 bin 文件夹,因此我将其包含在我的项目中,并将“生成操作”设置为“内容”,将“复制到输出目录”设置为“始终复制”。

但是,由于某种原因,当我尝试启动应用程序 ClickOnce 时,尝试将文件“tx16_rtf.dll”复制两次,从而导致错误。

如果我查看部署 list 文件,我可以清楚地看到文件“tx16_rtf.dll”的一个且仅有一个条目。所以,我的问题是,如果文件“tx16_rtf.dll”仅在部署 list 文件中存在一次,为什么 ClickOnce 会尝试复制文件“tx16_rtf.dll”两次?

下面是引用“tx16_rtf.dll”的部署 list 文件的片段:

  <file name="tx16_rtf.dll" size="839680">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>V6i2QcARl3+1SJHCugoazb9zrOY=</dsig:DigestValue>
</hash>
</file>

最佳答案

在您的 Visual Studio 解决方案中,如何添加文件?请尝试以下操作。

将 dll 添加到您的项目中。

如果您在引用中引用了 dll,请按如下方式设置 dll 的属性:构建操作 = 无,复制到输出目录 =“不复制”。然后删除引用,然后重新添加引用,但指向本地项目文件夹中的该 dll。在引用中,将“复制本地”设置为 true。

如果您没有 dll 的引用,请按如下所示设置 dll 的属性:Build Action =“copy”。复制到输出目录=“始终复制”。

如果您有引用,您希望包含它的原因是基于该引用,而不是基于 dll 属性。如果没有引用,则需要专门设置要包含的 dll。

另请检查“应用程序文件”对话框,并确保 dll 未标记为“包含(先决条件)”,而是“包含”或“包含(必需)”。

关于.net - ClickOnce - 文件已存在错误 - 为什么 ClickOnce 尝试将 DLL 文件复制两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793777/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com