ClickOnce和mageUI添加自定义文件夹问题

时间:2010-03-25 11:17:24

标签: deployment msbuild clickonce signing

我的所作所为:通过VS或msbuild(无论如何)发布.Net 3.5应用程序,现在我需要向已发布的应用程序插入单独的目录(模块 - 未添加为项目的参考 - 我们的项目架构不允许这个)。所以我将文件夹复制到已发布的位置然后运行mageUI.exe选择应用程序清单然后问题就开始了。当我按下填充按钮时,它还添加了隐藏目录?所以我删除了目录,在我想保存清单文件之后我得到了 “警告MSB3110:程序集'NAME.Shell.application.deploy'具有不匹配的标识'NAME.Shell.application',预期文件名:'NAME.Shell.application.application'”。

你有同样的问题,根据http://smartclient.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=5060它应该很容易,只有1-2-3,但事实并非如此。

2 个答案:

答案 0 :(得分:4)

讽刺的是,我目前正在为.NET 4.0的ClickOnce部署更新SCSF文档,现在我确切地知道它的问题。

首先,您要发布到磁盘位置,而不是直接发布到Web服务器。这样做,然后将要添加到部署的dll复制到带有应用程序清单(.manifest)的版本文件夹中。自己重命名 - 最后添加.deploy。

打开MageUI并在该文件夹中打开应用程序清单,然后取消选中“将.deploy添加到文件名”框。点击“填充”。

然后从列表中删除部署清单;它叫做appname.application。您不希望它包含在清单的文件列表中。

现在您可以保存并签署应用程序清单。然后在不退出mageUI的情况下,打开根文件夹中的部署清单( NOT 版本文件夹中的那个)。单击“应用程序参考”,然后单击“选择清单”。深入查看刚签名的版本文件夹中的应用程序清单,然后选择它。然后只需保存并签署部署清单。它在那里放置了一个相对路径,因此如果您修改版本文件夹中的.application文件,它在部署时将无法正常工作。

现在从根文件夹中获取该.application文件并将其复制到版本文件夹(替换那里的文件夹),这样您就可以获得该版本的正确副本,以备日后需要时使用。

现在将整个shebang复制到网络服务器。它应该工作。

答案 1 :(得分:0)

我认为你说你需要在ClickOnce部署中添加一些东西?你究竟在添加什么?你说模块 - 它们是要编译的,还是其他的东西?

如果要将文件添加到已创建的部署中,则需要使用MageUI编辑应用程序清单,该清单称为appname.exe.manifest。 (appname.application实际上称为部署清单,这是令人困惑但却是真的。)添加文件后,您还需要重新签署部署清单(假设您首先签名)。

将您想要包含的内容添加到项目并重新发布会更容易。根据它的不同,您可以将构建操作设置为“内容”(jpegs,html等)或“无”(dll),然后将“复制到输出目录”设置为true,并将其包含在部署中。

我不确定你的具体内容。给我更多信息,我可以提供更具体的帮助。

RobinDotNet