在MSVC中生成dll和exe

时间:2012-06-13 09:24:33

标签: c# .net

对于microsoft visual studio IDE中的可视化C#项目,要使用的配置设置是什么,以便它可以生成exe和dll输出?

3 个答案:

答案 0 :(得分:2)

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

以下是关于nant的优秀教程。

答案 1 :(得分:0)

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

  1. 在dll项目上创建预构建事件以调用批处理脚本
  2. 在批处理中,复制dll项目的csproj
    • 修改复制的csproj的XML内容,将输出类型更改为exe
    • 修改复制的csproj的输出目录
  3. 在Visual Studio中运行
  4. 您现在将获得生成的csproj的副本,其输出到exe。您可以将第二个csproj添加到visual studio中,每次构建时,都应该同步exe csproj并构建它。

    一些提示:

    • 您可以使用Powershell修改csproj。请参阅here
    • 您可能希望将复制的csproj中的所有cs文件修改为links

答案 2 :(得分:0)

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

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

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

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

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

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

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

<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>