无法使用的ClickOnce在.NET 4.0应用程序从发布的Visual Studio 2012(

2019-06-27 11:03发布

我安装了Visual Studio 2012年就去发布我们的应用程序之一,即是针对于.NET 4.0框架。 由于这些机器上安装,我们不能针对4.5在这个时候。 我们还利用“从同一地点为我的应用程序下载的先决条件”功能。

当去从Visual Studio 2012部署,我得到以下错误:

为了能够在先决条件对话框“从同一地点为我的应用程序下载的先决条件”,必须“的Microsoft .NET Framework 4(x86和x64)”下载文件“DotNetFX40 \ dotNetFx40_Full_x86_x64.exe”的项目到本地计算机。 欲了解更多信息,请参阅http://go.microsoft.com/fwlink/?LinkId=239883 。

如果你去这个链接,它会告诉你导航到package.xml文件,并找到链接,实际的先决条件。 在我的情况下,它应该去http://go.microsoft.com/fwlink/?linkid=182805 。 使用该链接将其下载一个名为dotNetFx40_Full_setup.exe包。 我把这个在/Packages/DotNetFX40文件夹。

当试图从Visual Studio 2012再次发布,我得到了同样的错误。 它似乎不喜欢此文件。

如果我发布同一应用程序相同的位置与Visual Studio 2010现在,它仍然只是罚款。

我怎样才能得到这个与Visual Studio 2012的工作?

Answer 1:

我有同样的问题。

重命名您下载到C的dotNetFx40_Full_setup.exe文件:\ Program Files文件\微软的SDK \的Windows \ v8.0A \引导程序\软件包\ DotNetFX40目录dotNetFx40_Full_x86_x64.exe。

我能这样做后成功发布我的应用程序。



Answer 2:

我相信你可以从下载正确的安装程序dotNetFx40_Full_x86_x64.exe:

http://www.microsoft.com/en-us/download/details.aspx?id=17718

(而不是重命名.NET框架4安装由Brian所建议的)。 将其放置在C:\Program Files\Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packages\DotNetFX40目录。 我有一个类似的问题与.NET客户端配置文件设置。 以我为例,我被下面的Microsoft MSDN帮助带坏了错误的安装程序。



Answer 3:

我有一个类似的问题。

MSDN文档中指定的注册表键http://msdn.microsoft.com/en-us/library/ms165429(v=vs.110).aspx指着目录C:\ Program Files文件(x86)的\微软的SDK \的Windows \ v7.0A \引导程序\因为这是不正确的包目录。

的Visual Studio 2012在寻找在C包:\程序文件(x86)\微软的SDK \的Windows \ v8.0A \引导程序\ Packages目录。 乍一看,包似乎是在包目录,但只包文件夹在那里,与可执行从每包文件夹中丢失。 例如,DotNetFX40Client子目录是在包文件夹,但该文件dotNetFx40_Client_x86_x64.exe从DotNetFX40Client文件夹中丢失。



Answer 4:

的Visual Studio 2012打破的ClickOnce安装程序,这就是如果你甚至得到的Visual Studio 2012没有告诉你,它不再支持更新应用程序。

如果你设法升级你的解决方案就像你有,你会发现,实际上的ClickOnce出版的罚款。 这只是说的先决条件,因此无法安装使得安装失败。 如果你仍然有你的代码的Visual Studio 2010的副本,从未被感动的Visual Studio 2012,您可以通过该副本仍然建立,即使你通过你的源代码控制更新的Visual Studio 2012编写的代码。 只要是构建保持不变,它将继续工作,但如果的Visual Studio 2012获取其手中的任何关于该副本专门ClickOnce的文件,它会简单地无法找到的依赖关系。

一,我决定利用过的事实,它仍然将发布并建立了一个自定义工具,只要它能够建立可安装和运行任何ClickOnce应用程序。 它可以安装到任何位置,如果需要提高,安装任何上市的先决条件(开发商控制),并创建桌面和开始菜单项,然后运行,做一个聪明的更新内容的ClickOnce会做一个更新(只更新必要的文件,以避免过度的带宽使用)。 我也建在更新源选择器,同时在调试环境。

这要求只有两个EXE文件被放置到发布文件夹,并从第三方安装程序,而不是那些的ClickOnce安装。 这给我了更多的功能(我可以把它做我想做的,多线程的安装/更新,降级能力为开发者回滚)和自由更改更新(主题化)或如何安装一事无成。

对于那些看到我的执行顺序是“假的EXE捷径” --->更新 - > exe文件,你会发现,实际上打破牵制,因为你的脚更新,而不是EXE文件,所以我取得了应用程序运行只用“/更新”的说法,如果它不存在,应用程序本身必须运行更新EXE文件存在于同一个文件夹(如果有文件要更新这只能说明),然后更新并用正确的命令参数再次启动原来的EXE文件。 现在钢钉工作,你只打开EXE文件。 (这也使的能力通过将命令参数到TARGETPATH跳过更新,以及所有最好的最终用户的什么都不知道,因为它是一个后台进程和安装是专业和品牌)。



文章来源: Can not use ClickOnce publish on .NET 4.0 application from Visual Studio 2012