标签: setup-project

在安装项目中包含文件夹

我想在安装项目中包含一个文件夹,以便在部署该安装程序时,整个文件夹也会部署到安装位置.

c# installation setup-project visual-studio-2008 visual-studio

8
推荐指数
1
解决办法
2万
查看次数

在不卸载/升级其他功能的情况下升级WIX功能树中的单个功能

我正在尝试使用WIX创建一个安装项目,这将允许我安装单个产品的多个功能.如何更新其中一个已安装的功能(独立于其他已安装的功能),而无需重新安装功能树中的其他功能?

例如,我希望能够拥有一个名为HelloWolrd的项目(返回HelloWolrd),其中(惊喜)打印出"Hello world!" 屏幕上.假设我有三个这样的hello world应用程序,Hello World 1,Hello World 2和Hello World 3.每个应用程序都会在屏幕上显示Hello World 1,2或3.我想要的是创建一个MSI,它默认安装所有这三个"功能",但也允许稍后单独升级每个功能.

这是我的解决方案布局:

Solution Explorer http://img12.imageshack.us/img12/5671/solutionexplorerm.jpg

我的WIX Product.wxs文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="ca484210-c719-4b2e-b960-45212d407c11" Name="HelloWorldInstaller" Language="1033" Version="1.0.0.0" Manufacturer="HelloWorldInstaller" UpgradeCode="68eeb8cb-9ef3-443c-870c-9b406129f7ff">
        <Package InstallerVersion="200" Compressed="yes" />

        <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />

        <!-- Create Directory Structure -->
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder">
                <Directory Id="INSTALLLOCATION" Name="Hello World" />
            </Directory>
            <Directory Id="DesktopFolder" Name="Desktop"/>
        </Directory>

        <DirectoryRef Id="INSTALLLOCATION">
            <Component Id="HelloWorld1" Guid="6D1D9D33-DA17-4db3-8132-C39F32200C3A">
                <RegistryKey Root="HKCU" Key="Software\HelloWorldInstaller\HelloWorld1\Install" Action="createAndRemoveOnUninstall">
                    <RegistryValue Name="DTSC" Value="1" Type="integer" KeyPath="yes" />
                </RegistryKey>

                <File Id="HelloWorld1.exe" …
Run Code Online (Sandbox Code Playgroud)

windows-installer wix wix3 setup-project feature-upgrade

8
推荐指数
1
解决办法
5320
查看次数

是否有任何指向Visual Studio中的安装项目创建的setup.exe文件?

我使用Visual Studio 2010创建了我的第一个安装项目.我注意到,当我构建安装项目时,它会生成一个MSI安装程序文件和一个setup.exe可执行文件.但是,我似乎能够右键单击MSI文件并选择安装来安装我的应用程序而不是运行setup.exe.

生成的setup.exe文件是否除了启动MSI文件之外还执行其他操作?分发我的应用程序时,我可以只提供MSI文件而不是MSI文件和setup.exe文件吗?

.net c# deployment setup-project visual-studio-2010

8
推荐指数
1
解决办法
2490
查看次数

如何在VS安装和部署项目中创建名称设置为[PRODUCTNAME]的快捷方式?

在我的VS安装和部署项目中,我想创建一个桌面快捷方式,其名称设置为[ProductName]属性.安装程序只是将[ProductName]视为字符串文字,而不是使用该属性.我怎样才能让它按照我想要的方式行事?

shortcut setup-project setup-deployment visual-studio

8
推荐指数
1
解决办法
452
查看次数

使用自定义表单设置项目

我目前正在开发Visual Studio 2010安装项目,并想知道以下是否可行:

1)以默认表单不显示的方式运行安装项目,而是显示我自己的自定义表单,订阅设置项目事件.这样我就会显示安装消息并增加我自己的进度条.

2)如果可能1,我需要一种方法来指定默认位置.

3)我有一个单独的库项目,我在安装处理程序中有一个自定义安装类(继承自"System.Configuration.Install.Installer")我希望能够显示自定义窗体,并控制选择由用户制作.我想通过添加对system.windows.forms的引用是可能的,但这是正确的方法吗?如果我无法隐藏默认安装表单,这些自定义表单将显示在默认安装表单上,我认为它看起来太棒了.

建议,链接等赞赏谢谢!

*更新1*

我可以从c#代码中启动.msi,还可以传入一个值.?

这个人在这里做什么: 链接

但是传入一个值...然后从我的自定义安装类中,我会根据此值采取操作.

更新2

好像我可以: 链接代码项目

更新3

我正在考虑做以下事情,我将开始使用winforms应用程序进行测试.

1)启动winforms应用程序.
2)进行一些webService调用,显示数据,用户进行选择.
3)根据更新1中的链接,启动过程(静默模式)和每个更新2,传入选定的值.
4)使用一些跨进程事件机制(WCF),以便我的自定义安装类可以通知我的表单,其运行的不同步骤和更新进度条和消息.

c# deployment installation setup-project

8
推荐指数
1
解决办法
1万
查看次数

Visual Studio安装项目不会升级到新程序

好的,这是我采取的步骤......

创建和自定义安装项目

设置安装项目版本= 1.0.0
构建安装项目
安装版本1.0.0
运行程序,在窗口的标题栏中 显示"v1.0.0"

更改程序中的代码以在窗口的标题栏中显示"v1.0.1"
设置安装项目RemovePreviousVersions = True
设置项目版本= 1.0.1
更改ProductCode(根据提示)
构建安装项目
安装版本1.0.1
运行程序,显示" v1.0.0"在窗口的标题栏中

新安装程序安装了旧版本的软件.在控制面板的"程序和功能"(以前称为"添加/删除程序")中,它显示已安装1.0.1版.我经历过多个教程,如http://www.simple-talk.com/dotnet/visual-studio/updates-to-setup-projects/

当您准备构建新版本的产品以替换旧版本时,请按照下列步骤操作:

  • 增加version属性(参见图1).Visual Studio将显示一个消息框,提示您更改ProductCode和PackageCode.选择是.
  • 将RemovePreviousVersions属性设置为true.

将RemovePreviousVersions属性设置为true会在安装新版本时从系统中删除以前版本的产品.由于产品由ProductCode Guid识别,因此更改ProductCode会创建新产品.也就是说,在安装新产品时会卸载旧产品.

如果我从控制面板手动删除1.0.0,然后安装1.0.1,程序运行正常显示"v1.0.1".

我在这里错过了什么?

setup-project visual-studio

8
推荐指数
2
解决办法
9366
查看次数

在当前用户下运行流程

VS中有"安装项目".安装过程中,我启动另一个过程

System.Diagnostics.Process process = new System.Diagnostics.Process();
//fill StartInfo and run call Start()
process.Start();
Run Code Online (Sandbox Code Playgroud)

如果我在Windows 7下运行安装程序并安装"Everyone",则在SYSTEM下启动进程.如果我安装"Just for me",请在当前用户下启动流程.如何始终在当前用户下启动流程?

c# setup-project

8
推荐指数
1
解决办法
1万
查看次数

更新GAC dll

我在GAC中注册了一个DLL,其中有一个错误(v4.2.0).

因此,我修复了该错误,仅更新了文件版本(v4.2.1)(保留了程序集版本,v4.2.0)并构建了一个新的MSI包.

问题是DLL没有安装在GAC中.我通过右键单击DLL验证了这一点C:\Windows\Microsoft.NET\assembly\GAC_MSIL\MyDLL\v4.0_4.2.0.0__2269313d92725976并检查了文件版本,这仍然v4.2.0是没有在其下创建的其他文件夹C:\Windows\Microsoft.NET\assembly\GAC_MSIL\MyDLL.

但!如果我卸载第一个版本,然后安装新的DLL,它就会在GAC中安装好.

我是以错误的方式接近这个吗?我们的应用程序设置为使用特定版本,因此只需创建程序集版本v4.3.0并将其安装在GAC中就行不通.

更新

我找到了有关发布商政策的文章(http://support.microsoft.com/kb/891030)并正在尝试这样做.我已经生成了策略程序集.但是当我尝试将它添加到安装项目时,Visual Studio崩溃=(

我还尝试将其作为内容文件添加到主项目中(然后将内容文件添加到GAC).但后来它抱怨集会没有签署.

所以我仍然被困住了.

c# gac setup-project visual-studio-2010

8
推荐指数
1
解决办法
1万
查看次数

如何使用 Azure DevOps Pipelines 正确构建 MSI 安装项目?

在过去的几天里,我一直在努力弄清楚如何设置 CI/CD 过程只是为了构建一个简单的 WPF 解决方案并使用 Azure DevOps Pipelines 创建 MSI 安装文件(“工件”)。我曾尝试使用Build VS Installer来完成此操作。我的主要问题是我不知道我到底做错了什么或我遗漏了哪些步骤,而且我在任何地方都找不到明确的说明。

这是我尝试过的:

  1. 使用 Hosted 2017 代理池和基本的 .NET 桌面模板。问题:

    • 从 VS 安装程序项目创建 .msi 文件作为最后一个任务或在发布工件之前):

2018-11-28T22:57:56.3186071Z DEBUG: Aggregated: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.com 2018-11-28T22:57:56.3211382Z Now running (C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.com) with Arguments ("D:\a\1\s" /Build "release|any cpu" /Out "D:\a\1\b\BuildInstaller_Log_20181128225756.txt") 2018-11-28T22:58:54.0015320Z Done running DevEnv process. Success = True. 2018-11-28T22:58:54.1169279Z ##[warning]No .MSI files were found, please check your build-configuration. If this is expected, you might consider to use the default …

c# setup-project azure-devops azure-pipelines

8
推荐指数
1
解决办法
5784
查看次数

rzc 生成已退出,代码为 -2147450730

当我在 Visual studio 中创建 blazor 应用程序后。当我尝试运行或构建应用程序时收到此错误。

我用过dotnet restoredotnet build

compiler-errors build setup-project blazor blazor-client-side

8
推荐指数
1
解决办法
1万
查看次数