1

对于 Microsoft Visual Studio IDE 中的 Visual C# 项目,要使用什么配置设置,以便它可以生成 exe 和 dll 输出?

4

3 回答 3

2

使用nant可以轻松实现您想要的。您必须创建一个简单的 xml 文件,该文件是脚本,并且可以通过批处理文件轻松执行。一旦你创建了它们,就很容易不再需要手动工作,每次你需要构建项目时,你所要做的就是执行脚本。

这是一个关于nant的优秀教程。

于 2012-06-13T09:45:22.203 回答
0

正如达林在评论中指出的那样,没有设置可以做到这一点。但是,您可以通过构建事件和批处理脚本来实现它

  1. 在 dll 项目上创建预构建事件以调用批处理脚本
  2. 在批处理中,复制 dll 项目的 csproj
    • 修改复制的csproj的xml内容,将输出类型改为exe
    • 修改复制的csproj的输出目录
  3. 在 Visual Studio 中运行它

您现在将获得生成的 csproj 的副本,该副本将输出到 exe。您可以将第二个 csproj 添加到 Visual Studio 中,每次构建时,它应该同步 exe csproj 并构建它。

一些技巧:

  • 您可以使用 Powershell 修改 csproj。看这里
  • 您可能希望将复制的 csproj 中的所有 cs 文件修改为链接
于 2012-06-13T09:36:52.543 回答
0

我知道这是一个老问题,但是可以在 proj 文件中做很多在用户界面中无法做到的事情。

对于这个特定问题,您只需这样做:

  • 创建一个新的项目配置,例如 ReleaseExe
  • 在项目的 csprojfile 中,您将找到以下行

    <OutputType>Library</OutputType>
    
  • 在该行之后添加以下行

    <OutputType Condition="'$(Configuration)|$(Platform)' == 'ReleaseExe|AnyCPU'">Exe</OutputType>
    

保存,打开项目并使用批量构建来构建dll和exe

好处是您可以Condition在项目文件中的所有标签上使用该属性。我有一个项目,我需要根据不同的第 3 方程序集创建两个版本。为了解决这个问题,我只需向引用标签添加一个条件。

<Reference Include="3rdParty" Condition="'$(Configuration)|$(Platform)' == 'Release1|AnyCPU'">
    <HintPath>Release1\3rdParty.dll</HintPath>
</Reference>
<Reference Include="3rdParty" Condition="'$(Configuration)|$(Platform)' == 'Release2|AnyCPU'">
    <HintPath>Release2\3rdParty.dll</HintPath>
</Reference>
于 2013-01-16T07:36:33.260 回答