2010-03-25 64 views
1

我做什么:出版的.Net 3.5应用程序通过VS或MSBuild的(其他),现在我需要插入到已发布应用程序单独的目录(模块 - 不添加到参考该项目 - 我们的项目架构不允许这样做)。所以我将文件夹复制到发布位置,然后运行mageUI.exe选择应用程序清单,然后问题开始。当我按下填充按钮时,它也添加了隐藏目录?所以我删除目录后,我想保存清单文件我得到 “警告MSB3110:程序集'NAME.Shell.application.deploy'具有不匹配的身份'NAME.Shell.application',预期的文件名:'名称。 Shell.application.application'”。的ClickOnce和mageUI添加自定义文件夹的问题

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

回答

4

在讽刺的一面,我目前正在更新为ClickOnce部署的SCSF文档.NET 4.0,现在我知道到底是什么问题吧。

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

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

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

现在您可以保存并签署应用程序清单。然后在不退出mageUI的情况下,打开根文件夹中的部署清单(不是版本文件夹中的那个)。点击“Application Reference”,然后点击Select Manifest。向下挖掘您刚签署的版本文件夹中的应用程序清单并选择它。然后保存并签署部署清单。它会在其中放置一个相对路径,因此,如果修改版本文件夹中的.application文件,则在部署时它将无法正常工作。

现在从根文件夹。应用文件,并将其复制到文件夹版本(替换这是那里的一个),所以你有该版本的情况下,你需要在以后合适的副本。

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

+0

谢谢!最后它按我的预期工作。现在我需要通过msbuild脚本来做到这一点:)让我们祈祷!!! :) – 2010-04-09 12:19:02

+0

我知道如何用法师做到这一点,但没有与msbuild混为一谈。祝你好运! :-) – RobinDotNet 2010-04-09 23:28:02

+0

此链接也帮助了我: http://blogs.msdn.com/b/vsto/archive/2009/04/29/signing-and-re-signing-manifests-in-clickonce.aspx – Seva 2014-09-10 00:25:03

0

我想你是说你需要添加一个东西到你的ClickOnce部署文件夹?你究竟添加了什么?你说模块 - 它们将被编译,还是其他东西?

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

它会更容易只添加你想要的东西包括到项目,并重新发布。根据它的内容,可以将构建操作设置为'content'(jpegs,html等)或'none'(dll's),然后将“copy to output directory”设置为true,并将其包含在您的部署中。

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

RobinDotNet

相关问题