为Windows应用程序配置构建目录结构的最佳方法

时间:2009-03-19 10:22:05

标签: visual-studio visual-studio-2008 msbuild build-process nant

我现在正在编写一个小应用程序,并且正在尝试组织我的构建输出,使其更接近成品。该应用程序由许多不同的项目组成。有一个包含大部分功能的核心库,一个GUI应用程序和一个命令行应用程序,它们都引用了Core Dll,以及一些在运行时加载并实现不同数据源的插件Dll,这些都引用了core.dll ,这些也可能包括一些其他第三方dll。还有许多外围文件,如自述文件。最后,core.dll和数据源插件经过了单元测试。

我想配置我的构建,以便将所有内容输出到目录中,就像我希望它在安装时一样。我希望将调试和发布版本构建到不同的目录中,否则具有相同的目录结构。我只希望为调试版本构建测试,并希望它们可以运行,但是分开(我猜所有测试dll都会输出到一个单独的目录中)。这就是我想象的结构。

Code/
    solutions etc here
Debug/

    Project.Core.dll
    Project.Gui.exe
    Project.Cli.exe
    readme.txt
    lib/
        ThirdParty1.dll
        ThirdParty2.dll
    DataSource/
        DataSource1.dll
        DataSource2.dll
    Tests/
        Project.Core.Tests.dll
        DataSource1.Tests.dll
Release/
    same as Debug but without tests.

有没有办法获得这样的构建解决方案?我开始认为从一个解决方案构建插件和应用程序很困难,甚至可能都不明智,但是因为它们将全部分布在一起会很好。我愿意使用Nant或其他构建工具,如果这样可以简化它。

2 个答案:

答案 0 :(得分:1)

有可能。只需在Debug和Release文件中的每个.csproj中手动修改OutputPath标记,就像这样

<OutputPath>..\$(Configuration)\any_subdirs</OutputPath>

您可以使用Configuration Manager禁用针对Release构建的测试。

答案 1 :(得分:0)

每次创建新项目时修改每个项目都很烦人。

以下是解决方案:

  1. 找到真正的vs项目,它将在某个地方(“%programfiles(x86)%\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ ProjectTemplates *”)

  2. 在某处本地复制。

  3. 提取它。

  4. 编辑内容,进行更适合您项目布局样式的更改。确保更新项目名称,该名称是您在新项目对话框中查找项目时看到的名称。它的xml标记为Name,您可以在{something} .vstemplate文件中找到它。

  5. 再次压缩内容。 (注意:内容不得在子文件夹中,所以/ *和NOT / {somefolder} / *)。

  6. 将自定义项目放在(“%USERPROFILE%\ Documents \ Visual Studio 2010 \ Templates \ ProjectTemplates *”)下。

  7. 添加一个新项目是Visual Studio,选择自定义项目,然后享受!