2

我有一个C#有两个命名空间的项目。Stoff3GUI一个带有 GUIxaml和文件的 GUI(作为命名空间) .cs,标记为起始对象和一个库(Stoff3Lib作为命名空间),所有类都在做实际工作。

现在,当我编译我的代码时,我会收到一个.exe文件Stoff3GUI.exe和一个.dll Stoff3Lib.dll. 在 Visual Studio 中,两个命名空间都是同一个项目的一部分。

如何在不生成单独文件的情况下将类从文件编译Stoff3Lib到文件中?.exe.dll

编辑:

更改xxx为我的项目名称 Stoff3 以便更好地理解。

4

3 回答 3

0

我相信您真正拥有的是带有 2 个项目的 1 个 Visual Studio 解决方案。

由于一张图片值 1000 个字,并且只是为了澄清术语,这就是 VS2012 中的样子:

两个项目

此解决方案的输出正是您所描述的:

  • TwoProjects\Stoff3GUI\bin\Debug\Stoff3GUI.exe
  • TwoProjects\Stoff3Lib\bin\Debug\Stoff3Lib.dll

在此处输入图像描述

完成您想要的最简单的方法是拥有一个包含 2 个不同命名空间的 VS 项目。添加与您的预期命名空间结构相匹配的文件夹是一种很好的做法,在您的情况下是 Stoff3GUI 和 Stoff3Lib:

在此处输入图像描述

当您编译此解决方案时,输出将是单个 EXE,但您仍然在文件夹/文件结构中非常清楚地保持模型和视图命名空间的分离:

  • OneProject\bin\Debug\OneProject.exe

在此处输入图像描述

于 2013-09-02T19:12:31.947 回答
0

如果两个命名空间都是同一个项目的一部分,那么您最终应该只得到一个程序集。

这可能与 Web 项目设置不同(各种不同风格的 Web 项目以我从未理解的时间和方式创建程序集),但对于独立的可执行项目,就我而言,在所有情况下,它确实是“一个项目产生一个程序集”我知道。仔细检查您是否真的只有一个项目 - 例如,您不应该在项目中对程序集有任何引用xxxLib

于 2012-08-13T09:33:22.683 回答
0

我不完全确定你在这里做什么。听起来您可能有一个带有两个项目的“解决方案”我的直接想法是将您想要的类移动到 GUI 启动项目中并删除另一个项目。

于 2012-08-13T09:36:32.120 回答