【发布时间】:2011-01-18 11:45:25
【问题描述】:
我的解决方案中有两个项目,第二个项目生成一个“Windows 应用程序”类型的可执行文件,并定义了一个启动对象。我不希望该项目生成的 exe 文件与名为“whatever.exe”的应用程序位于同一目录中,我想将其重命名为“whatever.dll”,因为用户不打算手动运行此应用程序(在第一个进程中,我以这个文件为目标调用 Process.Start() - 只要 PE 头将其标识为可执行文件,windows 就可以执行它就好了)。
我可以简单地将第二个项目的输出手动重命名为 .dll,甚至在构建后步骤中将其自动化,但是有没有办法创建一个“类库”类型的项目并为其定义一个启动对象?
【问题讨论】:
-
OOI 为什么不创建一个库项目并简单地从您的主 exe 项目中引用这个库?这将是使用库的标准方式。
-
因为如果我只是将它创建为一个库项目,它不会被标记为可执行二进制文件,并且对其调用 Process.Start() 将失败。
-
如果您将其作为库引用,那么您可以直接从您的 exe 项目中调用任何公共方法。除非您需要它提供的某些特定行为,否则您无需将其作为单独的进程启动。
-
我知道,我的问题不在于调用公共方法。使用 Process.Start("whatever.exe") 或 Process.Start("Whatever.dll") 作为单独的进程运行它 - 如果我将我的“Whatever”项目编译为“Windows 应用程序”,这两种方法都有效,如果我将其编译为“类库”,这些都不起作用。
标签: .net dll executable