【问题标题】:How to include another project Console Application exe in an Asp.Net website?如何在 Asp.Net 网站中包含另一个项目控制台应用程序 exe?
【发布时间】:2011-07-26 04:20:24
【问题描述】:

我有两个项目:一个 .Net 4.0 Console Application 和一个 Asp.Net 4.0 Website(它们在同一个解决方案中)。现在我想在 Web 应用程序中包含控制台应用程序(它的 .exe),因为当用户单击某个按钮时,我需要在服务器上运行它。

现在我想以一种在我重新编译解决方案时更新控制台应用程序的方式包含它,以便它保持最新。

那么... 如何在我的网络应用中包含我的 .exe?

附言。引用不起作用:

【问题讨论】:

  • 我已经用一个 Post Build Event 更新了我的答案,该事件适用于 .exe 文件及其依赖文件。

标签: c# asp.net visual-studio-2010 console-application


【解决方案1】:

您是否尝试将其作为“项目参考”添加到 网站 项目?右键单击网站项目,选择“添加引用...”并切换到“项目”选项卡。

这里的快速测试表明,当我构建解决方案时,控制台应用程序项目的输出(.exe)被复制到网站的 /bin 文件夹中。

然后,您应该能够使用标准部署机制来确保将其与其他库同时复制到服务器。


抱歉,您是对的,这不适用于网站项目,仅适用于 Web 应用程序

在这种情况下,您必须在控制台应用上使用“构建后”事件将其复制到网站的文件夹中。

在解决方案资源管理器中右键单击控制台应用程序项目并选择“属性”,或者当您打开项目中的文件时使用“项目”菜单。

然后在“构建事件”选项卡上,将“构建后事件命令行”更新为:

xcopy "$(TargetDir)$(TargetFileName)" "c:\users\[UserName]\Documents\Visual Studio 2010\Websites\[ProjectName]\bin\" /D /S /I /Y

如果您还想包含 PDB 和配置文件,那么类似以下内容会更好:

xcopy "$(TargetDir)$(TargetName).*" "c:\users\[UserName]\Documents\Visual Studio 2010\Websites\[ProjectName]\bin\" /D /S /I /Y

【讨论】:

  • 不,这不起作用,因为它声明“项目必须构建到 'dll' 扩展才能被引用。”
  • @Kees - 啊,抱歉,是的,网站的乐趣,而不是“Web 应用程序”。
  • 没问题。一段时间以来,我一直在使用类似的机制将库移动到测试机器;)
【解决方案2】:

如果您可以使用 exe 选项,请改用浏览选项卡。

【讨论】:

  • 在这种情况下,您可能希望更改 Debug 和 Release 构建的输出目录以使用公共目录,这会使您更难知道您是否有 debug 或 release 构建,否则您将被锁定使用您首先浏览的那个 - 例如,它不会注意到您已经完成了发布构建。
【解决方案3】:

在您尝试引用的项目上,确保将输出类型更改为类库。这应该可以解决它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多