Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 如何自动重命名";申请文件;ClickOnce部署中的文件夹_Visual Studio_Clickonce - Fatal编程技术网

Visual studio 如何自动重命名";申请文件;ClickOnce部署中的文件夹

Visual studio 如何自动重命名";申请文件;ClickOnce部署中的文件夹,visual-studio,clickonce,Visual Studio,Clickonce,我们目前正在使用Visual Studio构建ClickOnce部署包,但我们希望重命名“应用程序文件”,因为我们使用的Web服务器不支持空格 我们发现,如果直接进入.application文件,可以修改指向的路径,还可以手动重命名文件夹 是否有人知道一种自动化的方法,无论是使用MageUI还是其他工具?将一个批处理脚本放在一起为我们进行更改是很有诱惑力的。部署也使用未签名的文件,因为我们不需要担心证书(它只是一个内部应用程序)因为似乎没有人知道这个问题的答案,我已经找到了自己的方法。我已经创建

我们目前正在使用Visual Studio构建ClickOnce部署包,但我们希望重命名“应用程序文件”,因为我们使用的Web服务器不支持空格

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


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

因为似乎没有人知道这个问题的答案,我已经找到了自己的方法。我已经创建了一个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并不令人惊讶,因此可能有更好的方法来实现它,但这正是我想到的。首先,手动尝试此方法

将应用程序发布到文件夹(将发布位置设置为C:\Publish,并正确设置安装URL,如)

然后进入并将应用程序文件重命名为C:\publish中的ApplicationFile

转到C:\publish\ApplicationFiles\yourapp\u a\u b\u C\u d\文件夹并删除yourapp.application。(相信我,如果你不这样做,那么当你重新添加文件时,mageui会崩溃)

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

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

你应该看看名字和东西。点击文件。确保选中“在填充时添加部署扩展…”,然后单击“填充”(尽管考虑到这一点,所有扩展都应该具有该扩展,除非您在VS中对其进行了更改)。这将把文件夹中的所有文件添加到应用程序清单/

保存并签署应用程序清单

然后再次单击“打开”,打开c:\publish\yourapp.application

点击“申请参考”。在右侧,单击选择清单。浏览到您刚刚编辑的文件(C:\publish\ApplicationFiles\yourapp\u a\u b\u C\u d\yourapp.exe.manifest)。这将更新部署清单,以便在正确的应用程序清单中找到文件列表。保存并签署部署清单(yourapp.application)

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

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


如果你需要,我可以为你提供法师命令

你是怎么做到的?当我重命名文件夹时(appengine和spaces有一个bug!),我得到以下错误:+Manifest XML签名无效对象的数字签名未经验证。不确定您是否正在使用App Engine(因为您提到不支持空格),但我通过url编码处理程序url来使用空格:-url:/App/Application%20Files static\u dir:App/Application files您需要禁用清单文件上的签名生成。你是对的,我正在使用AppEngine,添加更多的处理程序URL似乎确实有效。有更多的细节