Visual Studio 2008 exe问题

时间:2010-09-24 08:50:54

标签: c# visual-studio exe

我有一个包含5个项目的VisualStudio解决方案。我有3/5项目在<mysolutionpath>/bin文件夹上有一个.exe文件。最近,我在我的解决方案中添加了一个新项目(一个带有Main入口点的项目),我将它的.exe文件放在<mysolutionpath/bin目录中。

但我有<mysolutionpath>/<recentproject>/bin的exe,我不知道因为发生了这个。

我是VisualStudio的新手,你能帮助我吗?

编辑: 我的VisualStudio解决方案有五个“Windows窗体应用程序”项目。当我编译我的解决方案时,我遇到了这种情况:

1)/ bin文件夹上的First.exe; 2)/ bin文件夹上的Second.exe; 3)第三个项目没有主要入口点; 4)/ bin文件夹上的Fourth.exe; 5)第五个项目没有主要入口点。

现在,我将向我的解决方案添加一个新项目,然后我右键单击我的解决方案 - >添加 - > Windows窗体应用程序,并添加新项目(例如,名称为“TEST”和主要入口点)我的解决方案。 但是,当我对整个解决方案进行编译时,我希望在/ bin文件夹上获得TEST.exe,但我在/TEST/bin/TEST.exe上有TEST.exe而在/bin/TEST.exe上没有,就像以前的五个项目一样。 我希望这次我解释得很好。

3 个答案:

答案 0 :(得分:1)

假设您的项目是针对可执行文件而不是其他内容(例如类库),那么您将在项目设置中的输出目录中找到可执行文件。如果它不是一个可执行项目,那么你不会得到.exe输出(对于类库期望.dll)。

默认情况下,VS将Debug和Release版本中的可执行文件放入单独的目录中,因此您可能也希望查看它们。

答案 1 :(得分:0)

VS默认情况下将所有项目放在一个输出中,如果它们都是通过引用绑定的。如果您的下一个可执行文件应该由main引用 - 只需执行此操作,它将出现在主输出中。 如果它不是一个选择,你可以添加(或更改).targets文件。在我的项目中,我有这样的内容:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
    <ClientPublishDirectory>$(SolutionDir)output\</ClientPublishDirectory>
    <PluginPublishDirectory>$(SolutionDir)output\</PluginPublishDirectory>
</PropertyGroup>
<Target Name="CopyOutputFiles">
    <CreateItem Include="$(OutputPath)\**\*.*;">
      <Output TaskParameter="Include" ItemName="OutputFiles" />
    </CreateItem>
    <Copy SourceFiles="@(OutputFiles)" DestinationFolder="$(ClientPublishDirectory)%(OutputFiles.RecursiveDir)" ContinueOnError="false" />
</Target>
<Target Name="CopyPluginsOutputFiles">
    <CreateItem Include="$(OutputPath)\**\*.*;">
    <Output TaskParameter="Include" ItemName="PluginsFiles" />
    </CreateItem>
    <Copy SourceFiles="@(PluginsFiles)" DestinationFolder="$(PluginPublishDirectory)%(PluginsFiles.RecursiveDir)" ContinueOnError="false" />
</Target>
<Target Name="Copy3rdParties">
    <CreateItem Include="$(SolutionDir)\..\libs\*.dll">
    <Output TaskParameter="Include" ItemName="OutputFiles" />
    </CreateItem>
    <Copy SourceFiles="@(OutputFiles)" DestinationFolder="$(ClientPublishDirectory)%(OutputFiles.RecursiveDir)" ContinueOnError="false" /> </Target> </Project>

答案 2 :(得分:0)

在项目设置中,在Build下,有一个输出路径:设置。我通常会为多项目相互依赖的解决方案这样做:

  1. 在所有项目目录上方的目录中创建一个新的解决方案文件。
  2. 在与解决方案相同的目录中创建一个bin目录。
  3. 现在打开解决方案文件并添加所有项目。
  4. 对于每个项目,请转到项目设置中的“构建”部分。
  5. 对于发布模式,将输出路径:设置为.. \ bin \ Release
  6. 对于调试模式,将输出路径:设置为.. \ bin \ Debug
  7. 现在,对于每个项目,删除解决方案中对其他DLL的现有引用,而不是添加对相应项目的引用。
  8. 这种方法不需要** Build Event *脚本,这些脚本在构建期间往往会混淆Output窗口。使用Project引用将使Visual Studio将已编译的DLL复制到正确的文件夹,并确保在任何代码更改后开始调试之前重新编译项目。这种方法通常可以保证您在调试期间使用正确版本的二进制文件和符号文件。