项目文件只包含文件而没有内置输出

时间:2009-06-01 17:19:45

标签: visual-studio

如何创建一个只有一些数据文件且没有内置输出的项目文件(VS 2008)?

我可以创建一个空项目并将我的数据文件添加到它(它被复制到输出文件夹 ),但它在我做一个构建后产生一个EmptyProject.dll。我只想要输出目录中的数据文件,而不是一些空的DLL或EXE。

我希望数据文件是这个项目中唯一的东西,因为项目将在几个解决方案中共享。

我们的应用程序是C#。我们所有的常规代码项目都是C#。

数据文件是模式(XSD)。我希望这些模式位于输出文件夹中,但我不希望它们包含在现有项目中。我想要一个名为“Schemas”的项目,除了XSD文件之外什么都没有,除了将XSD文件复制到输出文件夹之外什么都不做。我想在项目文件中这样做,以便可以在多个解决方案中引用相同的模式项目。

5 个答案:

答案 0 :(得分:3)

我不知道如何抑制.dll文件的创建。但是......这是一个简单的解决方法。在项目属性“构建事件”选项卡中,编写将删除文件的构建后事件命令行。类似的东西:

del path \ filename.dll

答案 1 :(得分:2)

扩展斯科特的回答:

  1. 创建空项目
  2. 类型的新项目
  3. 在属性 - >应用程序中,将输出类型更改为类库
  4. 在属性 - >构建 - >高级中,将调试信息更改为
  5. 在属性 - >构建事件中,将构建后事件命令行设置为del $(TargetPath)
  6. 这样,项目只会创建一个被删除的DLL。同时,尊重数据文件的“复制到输出目录”设置。

答案 2 :(得分:0)

如果你没有建造一个项目,你需要什么?

  1. 您可以使用解决方案文件夹“存储”文件......
  2. 为什么不禁用为所有配置构建此项目(使用配置管理器) - 这样就不会构建。

答案 3 :(得分:0)

好东西。扩展Scott>丹尼尔回答:

  • 安全删除所有引用和属性(AssemblyInfo.cs)
  • 如果是node / grunt / gulp项目,那么您可以在Build Events>中调用它。 *构建后事件命令行*例如:gulp buildgulp clean
  • 也许您可以将删除或obj和bin输出文件夹添加到node / grunt / gulp clean脚本中,以减少对del $(TargetPath)
  • 的需求

答案 4 :(得分:0)

可能的另一种方法是替换以下内容来编辑csproj文件:

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

与此:

  <Target Name="Build" />
  <Target Name="Rebuild" />

然后构建不会创建任何东西。它为我工作。 任何xxproj文件都应使用相同的基本思想。只需将<Import Project...>标签替换为<Target...>标签即可。

我想知道这是否会导致任何问题或对任何人都不起作用。