2

我做什么:通过 VS 或 msbuild(随便)发布 .Net 3.5 应用程序,现在我需要插入到已发布应用程序的单独目录中(模块 - 未作为对项目的引用添加 - 我们的项目架构不允许这样做) . 所以我将文件夹复制到发布的位置,然后运行 ​​magUI.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 一样容易,但事实并非如此。

4

2 回答 2

4

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

首先,您要发布到磁盘位置,而不是直接发布到网络服务器。这样做,然后将要添加到部署中的 dll 复制到带有应用程序清单 (.manifest) 的版本文件夹中。自己重命名它们——只需在末尾添加 .deploy 即可。

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

然后从列表中删除部署清单;它被称为 appname.application 之类的东西。您不希望它包含在清单的文件列表中。

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

现在从根文件夹中取出 .application 文件并将其复制到版本文件夹中(替换那里的那个),以便您拥有该版本的正确副本,以备日后需要时使用。

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

于 2010-04-05T00:29:54.307 回答
0

我想你是说你需要在 ClickOnce 部署中添加一个文件夹?你到底在添加什么?你说模块——它们会被编译进去,还是别的什么?

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

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

我不确定你到底包括了什么。给我更多信息,我可以提供更具体的帮助。

罗宾点网

于 2010-03-26T17:55:33.393 回答