Visual Studio项目安装程序以从源代码构建外部依赖项

时间:2019-03-16 15:59:55

标签: c# visual-studio msbuild

我的设置包含三个独立的项目:

  • MyApp -C#应用程序。引用 CLibraryWrapper (包括作为git子模块)
  • CLibraryWrapper -C#类库,它是本机C库的C#包装器。取决于 CLibrary (包括它作为git子模块)
  • CLibrary -C共享库。
C# platform=AnyCPU                     C# platform=AnyCPU
+----------------+     References      +------------------------+
|     MyApp      +--------------------->    CLibraryWrapper     |
|                |                     |                        |
| MyApp.sln      |                     | CLibraryWrapper.sln    |
| MyApp.csproj   |                     | CLibraryWrapper.csproj |
|                |                     |                        |
+----------------+                     +-------+----------------+
                                               |
                                               | Depends
                                               |
                                               v
                                       C Shared Library
                                       +------------------+
                                       |     CLibrary     |
                                       |                  |
                                       | CLibrary.sln     |
                                       | CLibrary.vcxproj |
                                       |                  |
                                       +------------------+

问题#1

我应该能够为AnyCPU平台构建 CLibraryWrapper ,这需要设置 CLibraryWrapper 项目 以这种方式可以为x86x64平台构建 CLibrary 。我在运行时根据流程平台加载CLibrary.dll,因此我需要同时存在(x86和x64)二进制文件。

CLibraryWrapper AnyCPU构建后的最终结果应如下所示:

|_bin/Debug/
  |_CLibraryWrapper.dll
  |_x86/
    |_CLibrary.dll
  |_x64/
    |_CLibrary.dll

在Visual Studio构建配置中是否可以实现这一目标?

问题2

MyApp 应该能够添加 CLibraryWrapper 作为项目参考。

最终结果应该是 MyApp 构建了 CLibraryWrapper ,而后者又构建了x86/CLibrary.dllx64/CLibrary.dll。 这样, MyApp 便可以使用源代码中的所有依赖项来构建。

我了解到您无法从另一个solution引用solution。解决方案控件可建立依赖关系。我真的很想 MyApp 引用 CLibraryWrapper 并继承CLibrary构建配置。

我无法找到如何以这种方式设置 Visual Studio 构建配置的方法。

0 个答案:

没有答案