我是编程新手,在尝试使用Click一次发布我的winform应用时遇到错误。我得到的错误是
"在此操作期间检测到以下错误。 System.Deployment.Application.InvalidDeploymentException(SignatureValidation) - 强名称签名对此程序集MetroFramework.dll无效。 "
现在在创建项目时,我无法更改Metro控件的某些颜色和字体,因此我更改了DLL以更改默认颜色。我认为这是导致问题的原因吗?
使用点击一次的全部目的是获得"自动更新"功能"到位。以前我使用的是安装项目,我们公司的最终用户每次进行更新时都会使用共享网络驱动器并重新安装应用程序。我希望实现点击一次,以便我可以自动更新应用,并限制最终用户使用旧版本的应用。
我真的不认为我会用我的知识水平来解决这个问题,尽管我做了多少次搜索。
我想澄清我在同一时间经历的事情:
我的应用是供同事使用并连接到我们的主数据库。我可以通过添加和构建一个"安装项目"来成功部署项目。这允许我制作MSI并创建图标等。我将安装文件放在网络驱动器中,最终用户可以在其中找到并安装该应用程序。
从开始到结束,一切都很棒,除了我处理软件更新的方式。目前用户要求更改,我去更新应用程序并将新的安装文件放在网络驱动器中。这个问题是: 1)用户不会被自动建议更新可用 2)用户无需更新软件......他们可以继续使用他们拥有的版本(这很糟糕)。
所以我一直在寻找一种方法来确保用户在可用时提示更新到最新版本。沿着这条路走下去,我在搜索中发现我可以使用"点击一次"部署方法(而不是安装项目)来实现自动更新。
我的两个问题是: A)我甚至不知道这是否是实现上述目标的最佳方法。 B)当我尝试使用"点击一个"发布,我能够发布,但我无法运行setup exe。我正在获取MetroFramework"强名称签名对此程序集MetroFramework.dll无效。" LIke我提到我认为这可能是因为我改变了DLL以获得对字体的控制。但我不知道如何开始纠正这个问题。
答案 0 :(得分:0)
您是否正在努力使用Click Once制作安装程序?您可以尝试在Windows窗体中创建一个我过去所做过的操作。我为自动更新所做的是在我的网站上托管一个文件,应用程序每次下载该文件,当我发布更新时,我将文件内容更改为自动安装程序(即WinForms)的位置,以便下载和运行。这可能是一个很好的解决方案。我对MetroFramework.dll
的体验不是很好,我最终只是放弃了使用它。 MetroFramework.dll
文件也必须与可执行文件位于同一目录中才能使其正常工作,这在创建安装程序时应牢记。希望我能帮助:)。