如何在ClickOnce部署中自动重命名“Application Files”文件夹

时间:2009-05-27 16:37:42

标签: visual-studio clickonce

我们目前正在使用Visual Studio构建ClickOnce部署包,但我们想重命名“Application Files”,因为我们使用的网络服务器不支持空格。

我们发现,如果我们直接进入.application文件,我们可以修改指向的路径,我们也可以手动重命名该文件夹。

有没有人知道自动化这种方法,无论是使用MageUI还是其他任何实用工具?将批处理脚本放在一起为我们做出改变是很诱人的。部署也使用未签名的文件,因为我们不需要担心证书(它只是一个内部应用程序)

2 个答案:

答案 0 :(得分:2)

由于似乎没有人知道答案,我找到了一种自己做的方法。我创建了一个powershell脚本。请注意,这仅适用于未签名的清单。

gci -Recurse -include *.application | ForEach-Object { [System.IO.File]::WriteAllLines($_.FullName, [System.IO.File]::ReadAllText($_.FullName).Replace("Application Files", "ApplicationFiles")) }
gci -recurse | Where {$_.psIsContainer -eq $true} | Where {$_.Name -eq "Application Files"} | ForEach-Object { $_.MoveTo($_.FullName.Replace("Application Files", "ApplicationFiles")) }

我的powershell并不令人惊讶所以可能有更好的方法,但这就是我想出来的

答案 1 :(得分:0)

首先,手动尝试。

将应用程序发布到文件夹(将发布位置设置为类似C:\ publish,以及正确安装URL,如http://myserver/myapp/)。

然后进入并在C:\ publish。

中将应用程序文件重命名为ApplicationFiles

转到C:\ publish \ ApplicationFiles \ yourapp_a_b_c_d \文件夹并删除yourapp.application。 (相信我,如果你不相信,mageui会在你重新添加文件时废弃)。

运行MageUI(它位于c:\ program files \ microsoft sdks \ windows \ v7.0a \ bin或v6.0a \ bin,具体取决于您运行的VS版本。)

在MageUI中,单击“打开”,查找c:\ publish \ ApplicationFiles \ yourapp_a_b_c_d \ yourapp.exe.manifest并打开它(其中a_b_c_d是您的版本,yourapp是您的应用程序名称)。

你应该看到名字和东西。单击“文件”。确保选中“在填充时添加部署扩展名...”,然后单击“填充”(虽然想到它,所有都应该具有该扩展名,除非您在VS中更改了它)。这会将文件夹中的所有文件添加到应用程序清单/

保存并签署应用程序清单。

然后再次打开,打开c:\ publish \ yourapp.application。

单击“应用程序参考”。在右侧,单击“选择清单”。浏览到刚编辑的那个(C:\ publish \ ApplicationFiles \ yourapp_a_b_c_d \ yourapp.exe.manifest)。这会更新部署清单,以便它可以在正确的应用程序清单中找到文件列表。保存并签署部署清单(yourapp.application)。

将文件夹复制到网络服务器,它应该可以工作。

现在,如果这对您有用,您可以使用Mage命令替换mageui内容,并可能执行一些简单的脚本将文件复制到新文件夹或将“Application Files”重命名为“ApplicationFiles”。

如果您需要,我可以为您提供Mage命令。