标签: setup-project

COM 互操作、隔离和排除重复引用

我们在我们编写的 C# dll(程序集 A)中使用 Microsoft 提供的 COM DLL(dsofile.dll)。为了避免必须注册 COM dll,我已将对 dsofile.dll 的引用的isolated 属性切换为 true。

这意味着当我们编译 dll 时,Visual Studio 会将 dsofile.dll、Interop.DSOfile.dll 和 Native 清单文件复制到我们解决方案的 bin 文件夹中,并且应用程序可以在不注册 dsofile.dll 的情况下运行。

这种方法在小型测试应用程序中取得了成功。

然而,在实际应用程序中,程序集 A 被我们的一些其他 dll(程序集 B 和程序集 C)和应用程序 EXE 引用。当本机清单文件和互操作 dll 复制到应用程序的 bin 文件夹时,将使用每个文件的不同副本,因为引用第一个 dll 的每个 dll 都会创建自己的副本。

这会导致文件的多个副本在安装项目中显示为引用(即来自程序集 A、B 和 C 以及 EXE 文件夹的 dsofile.dll,来自程序集 A、B 和 C 以及 EXE 文件夹的 Interop.DSOFile.dll, Native.Assembly A.manifest(来自程序集 A、B 和 C 以及 EXE 文件夹)和编译器警告(“两个或多个对象具有相同的目标位置”)。

此外,如果复制到最终文件夹中的清单和互操作 DLL 不是直接来自 Assembly A 文件夹(因为重复文件相互覆盖),则应用程序无法成功加载 COM DLL。

我被迫从安装依赖项中手动排除文件的重复副本,但在重新加载或重建解决方案时它们会重新出现。

谁能提供更好的方法来实现 COM dll …

c# automation com-interop setup-project visual-studio

5
推荐指数
1
解决办法
5425
查看次数

在 Visual Studio 安装程序安装项目中创建文件夹

我已经构建了一个 Visual Studio (2010) 安装程序安装项目来部署基本的 WinForms 应用程序,并且我需要我的安装程序根据其运行的操作系统创建几个目录。例如,当安装程序在 Windows XP(及更早版本)上运行时,我需要创建:

Application Folder\NewFolder
Run Code Online (Sandbox Code Playgroud)

如果安装程序在 Vista 或更高版本上运行,我需要在通用应用程序数据文件夹(即 C:\ProgramData)下创建目录,如下所示:

Common Application Data Folder\NewFolder
Run Code Online (Sandbox Code Playgroud)

我看到我可以通过“视图”->“文件系统”添加“自定义文件夹”,但我不确定如何声明这个新文件夹的 DefaultLocation 属性。它的默认值为 [TARGETDIR],但我不确定如何指定要创建的目录的位置。这可以通过 Visual Studio 安装程序安装项目来完成吗?还是我运气不好?

windows-installer setup-project visual-studio

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

Visual Studio安装项目:将CustomActions/process作为当前用户而不是系统帐户运行

我在visual studio 2010中使用了一个安装项目,用于ac#outlook插件(Office 2010/2013)和另一个独立工具.在安装过程中,我终止了所有outlook实例,之后我想重新启动一个outlook实例.

在我的addin项目中,我添加了一个installerclass并添加了一个InstallEventHandler(AfterInstallEventHandler),我在其中执行

Process.Start("Outlook");
Run Code Online (Sandbox Code Playgroud)

虽然相同的命令只是在其他编译的类中打开Outlook,但在安装程序Outlook的上下文中将在概要文件创建助手中打开.

我还尝试在提交后将所述工作编译的exe作为用户定义的操作运行,但同样的问题也会发生.

任何解决方案或解释将不胜感激.

c# setup-project visual-studio-2010 outlook-2013

5
推荐指数
1
解决办法
1664
查看次数

如何在VB Script中延迟?

如何延迟 Vb 脚本?以下代码对我不起作用:

wscript.sleep 1000
Run Code Online (Sandbox Code Playgroud)
Delay 10

Sub Delay( seconds )
    Dim wshShell, strCmd
    Set wshShell = CreateObject( "Wscript.Shell" )
    strCmd = "%COMSPEC% /C (PING -n " & ( seconds + 1 ) & " 127.0.0.1 >NUL 2>&1 || PING -n " & seconds & " ::1 >NUL 2>&1)"
    wshShell.Run strCmd, 0, 1
    Set wshShell = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
dim oshell 
set oshell = CreateObject("Wscript.Shell") 


obshell.run "%windir%\system32\rundll32.exe kernel32.dll Sleep 5000" 
Run Code Online (Sandbox Code Playgroud)

vbscript wsh delay setup-project visual-studio-2010

5
推荐指数
1
解决办法
5406
查看次数

项目安装程序不使用项目输出的 App.config 转换

我正在使用Visual Studio 2013 项目安装程序扩展。在我的安装程序项目中,我选择使用另一个项目(称为程序项目)的主要输出。PP 是一个控制台应用程序,有一个 app.config,其中包含使用此配置扩展的转换文件。使用各种配置构建 PP 可以正确获取变换值。但是,即使我选择了正确的配置文件来与 PP 的输出一起使用,我的安装程序项目也不会获取正确的转换值。相反,它仅获取 PP 根 app.config 文件中的任何值。 在此输入图像描述 在此输入图像描述

它不是从应用程序获取值。调试.config。它正在使用 app.config 文件。

app-config setup-project visual-studio

5
推荐指数
0
解决办法
263
查看次数

节点:package.json 应该在 src 文件夹中还是在父文件夹中?

我不知道是否有推荐的或标准的方法,但我看到了这样的例子:

my-project
  package.json
  src
    index.js
    [...]
Run Code Online (Sandbox Code Playgroud)

像这样:

my-project
  src
    package.json
    index.js
    [...]
Run Code Online (Sandbox Code Playgroud)

推荐的方法是什么?每种方法有什么优点/缺点吗?

conventions setup-project node.js npm package.json

5
推荐指数
2
解决办法
4204
查看次数

如何使用 Next.js 13^ 为服务器和客户端组件设置 i18next

Next 社区,我在使用我也在使用的全新Next.js13配置国际化时遇到问题i18next

\n

我恳请您的帮助,并可能提供一些工作设置的示例。

\n

这是我到目前为止所尝试过的\n(我正在使用新的“app”目录)

\n
//next-i18next-config.js\n\nmodule.exports = {\n  i18n: {\n    locales: [\'en\', \'de\'],\n    defaultLocale: \'en\',\n  },\n}\n
Run Code Online (Sandbox Code Playgroud)\n
// next.config.js\n\nconst { i18n } = require(\'./next-i18next-config\')\n\nconst nextConfig = {\n  reactStrictMode: true,\n  swcMinify: true,\n  experimental: { appDir: true },\n  i18n\n}\n\nmodule.exports = nextConfig\n
Run Code Online (Sandbox Code Playgroud)\n
public\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 favicon.ico\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 locales\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 de\n    \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 translation.json\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 en\n       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 translation.json\n\n
Run Code Online (Sandbox Code Playgroud)\n
// package.json\n\n"dependencies": {\n    "i18next": "^22.0.4",\n    "next": "13.0.0",\n    "next-i18next": "^12.1.0",\n    "react-i18next": "^12.0.0",\n    "react": "18.2.0",\n    "react-dom": "18.2.0",\n    "sass": "^1.56.0",\n    "typescript": "4.8.4",\n  },\n
Run Code Online (Sandbox Code Playgroud)\n

服务器端问题 …

setup-project i18next reactjs next.js13

5
推荐指数
1
解决办法
4694
查看次数

启动条件以检测Office 2010应用程序

我试图使用VS2008创建一个安装项目.

无论如何都要检测是否安装了特定的Office 2010应用程序?
(作为先决条件).eg:我想检测客户端计算机上是否安装了Powerpoint 2010.

我试图在lauch条件下使用Windows安装程序搜索选项,但无法找到
powerpoint 2010的组件ID?

有没有更多的方法来检测相同的?(可以是程序化的)

windows-installer ms-office setup-project setup-deployment

4
推荐指数
1
解决办法
1802
查看次数

Windows安装程序/安装程序项目:强制安装到"程序文件",而不是x86?

我的老板需要一个安装程序来将软件安装到我们客户的一台机器上.他希望将软件专门安装到"C:\ Program Files\HisApplicationName"中,而不是"C:\ Program Files(x86)\ HisApplicationName".我知道正确的答案是重写软件以容纳用户选择安装的任何目录,但不幸的是,这是非常旧的软件,需要明天安装,所以我们只想强制安装程序指向客户端"Program Files"目录.

我的问题是,当我将文件路径硬编码到安装程序的"DefaultLocation"属性时,安装程​​序仍然会尝试指向Program Files(x86)目录.

有没有办法强制Windows安装程序/安装程序包指向程序文件而不是"程序文件(x86)"?

谢谢.

windows-installer setup-project

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

创建了MSI但此处理器类型错误不支持获取安装包

我是MSI的新手.我创建了一个Window的服务,它是我的MSI的输出项目.我的本地机器是64位Win 7机器.我尝试安装的服务器是在VM上运行的Win 2008 32位服务器.我正在使用.NET 4 VS2010.

目前,我的服务的exe正在构建为发布目标= Config Manager中的任何CPU.MSI,没有给我任何改变平台的选择.

我可以在我的本地64位Win7机器上安装没问题.但是,每当我尝试在32位Win 2008上安装时,我都会收到以下错误:"此处理器类型错误不支持此安装包.请与您的产品供应商联系."

我尝试将服务的目标更改为x86重建exe和设置,但我得到了相同的结果.该服务引用了许多类库.我将那些从Any Cpu更改为x86,只是为了看看是否有任何区别.

我还确保将我的安装项目和服务先决条件设置为.NET Framework 4(x86和x64).我还尝试将先决条件Windows Installer从3.1更改为4.5.

似乎没什么用.有任何想法吗?谢谢.

windows-installer windows-services setup-project

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