Oku*_*ott 5 dll dependencies windows-installer visual-studio-2010
我的 VB.NET (2010) 项目中有一个 DLL:TwinCAT.Ads.dll[有包含],它有自己的依赖项:TcAds.dll[在我的项目中没有包含任何地方],它不是.NET 程序集。
我让编译器TcAds.dll通过将它作为现有项目添加到我的项目中来确保它在编译时吐到 bin 输出文件夹中,然后将它的构建操作设置为“嵌入式资源”并将其设置为始终复制到输出目录。
现在我已经准备好发布了,我已经制作了一个 Windows 安装项目。
请不要建议使用 WIX 或其他任何东西,这就是我必须使用的。
问题是这个 DLL 的弃儿不会作为依赖项出现,因此不会包含在安装程序中。安装后,程序运行,找不到DLL,炸了。
当然必须有一种简单的方法来确保您想要的任何文件都包含在安装目录中?
您可以将任意文件添加到您的安装项目中。

我创建了一个安装项目并将 c++ ddl 文件添加到输出。它在安装项目文件中有以下部分。您可以通过这种方式轻松地将 dll 文件添加到您的项目中。如果需要,您可以编写构建后脚本来将此文件复制到合适的位置,以便安装项目能够找到它。
"File"
{
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_06335985DF0F4EF3A600861437AA6CDF"
{
"SourcePath" = "8:..\\Debug\\CppWin32.dll"
"TargetName" = "8:CppWin32.dll"
"Tag" = "8:"
"Folder" = "8:_1E4113F2F81040508FD1CDA54F242F25"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
}
Run Code Online (Sandbox Code Playgroud)
查看我的构建输出。
------ Build started: Project: ConsoleApplication1, Configuration: Debug x86 ------
ConsoleApplication1 -> P:\denemeler\setupDeneme\Setup1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe
------ Starting pre-build validation for project 'Setup1' ------
------ Pre-build validation for project 'Setup1' completed ------
------ Build started: Project: Setup1, Configuration: Debug ------
Building file 'P:\denemeler\setupDeneme\Setup1\Setup1\Debug\Setup1.msi'...
Packaging file 'CppWin32.dll'...
Packaging file 'ConsoleApplication1.exe'...
========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped ==========
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5733 次 |
| 最近记录: |