gpt4 book ai didi

visual-studio - 可以创建输出类型为 "none"的 Visual Studio 项目吗?

转载 作者:行者123 更新时间:2023-12-04 14:36:56 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 2008 并想创建一种容器项目,该项目包含许多必须与解决方案一起安装的 DLL。我希望它们位于一个单独的项目中,以便它们可以作为一个组轻松地附加到解决方案中。

我创建了一个名为 TEST 的空项目,使用“内容”的构建操作将我的 DLL 添加到其中,并将它们设置为“始终复制”。这一切都如我所愿。问题是,如果我将 TEST 项目的输出类型设置为“控制台应用程序”或“Windows 应用程序”,它将无法构建,因为没有入口点。如果我将输出类型设置为“类库”,它会生成,但最终会生成一个我并不真正想要的额外 TEST.DLL 文件。

无论如何将输出类型设置为“无”?我希望发生构建操作(因此我的 DLL 被复制)但我不希望创建虚拟类程序集。有任何想法吗?

谢谢!

最佳答案

以下分步指南的假设:

假设您有一个包含两个项目的解决方案:

  • Main :您的主要(启动)项目。
  • BundledDLLs :包含 .dll 的库项目s 应该在主项目的输出目录中结束。

  • 分步指南:

    在 Visual Studio 中实现目标的最简单方法可能如下:
  • 全部添加 .dll转至 BundledDLLs并将它们的 Copy to output directory 设置为 Copy if new。

    这是在项目资源管理器和属性窗口中完成的。
  • 配置 BundledDLLs的输出目录与 Main 相同的输出目录。

    这可以在 BundledDLL 的 Build 选项卡中完成。的项目属性页面。在输出路径文本框中输入如下内容:
    ..\Main\bin\Debug
  • 设置 BundledDLLs作为 Main 的依赖项.

    不加BundledDLLs作为项目引用 Main ,就像你通常可能的那样;相反,使用“项目依赖项”对话框来 .这将告诉构建工具每当 Main已建成,BundledDLLs需要先构建。

    通过右键单击 Main 来执行此操作项目节点打开上下文菜单;从那里选择项目依赖项...。在现在打开的对话框中,首先选择 Main从下拉列表中;然后检查 BundledDLLs在下面的项目列表中。 BundledDLLs现在注册为 Main 的依赖项.

    P.S.: One disadvantage of not having an explicit assembly reference in Main is that some tooling might not recognise the dependency. For example, ClickOnce deployment might not work properly.

  • 将构建后事件添加到 BundledDLLs删除多余的 BundledDLLs.dll .

    正如您所说,您不想要,也不需要 BundledDLLs 时生成的虚拟输出。建成。因此,添加一个简单地删除此 .dll 的构建后事件一旦它被创建。

    BundledDLLs 中打开“构建事件”选项卡的 Project Properties 页面,然后在 post-build 文本框中输入如下内容:
    DEL "$(TargetDir)\$(TargetName).*"

    (如果你想知道:你之前没有添加这个项目作为对 Main 的项目引用的原因是因为如果你这样做了, Main 将寻找 BundledDLLs.dll ,它不会能够找到,因为您实际上并不希望生成这样的文件。)

    P.S.: One disadvantage of adding such a post-build step is that it might interfere with incremental builds. If your project keeps getting recompiled from scratch after this, you might be better off removing the post-build step and living with the extra BundledDLLs.dll in your solution's output directory.

  • 关于visual-studio - 可以创建输出类型为 "none"的 Visual Studio 项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1434629/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com