Visual Studio中:如果编译为一个dll排除类(Visual Studio: Exclud

2019-10-18 02:04发布

我有一个DLL项目,我经常编译为.exe ,这样我可以很容易地在其测试类。 一类包含一个Main()方法中,当我编译成它是无用.dll文件。 我想从每当我编译它作为一个类库项目自动排除此类。 好像我一定要第一人遇到这个问题之一,因为全能的谷歌似乎并没有对我的问题的答案:我如何做到这一点?

Answer 1:

我会认真考虑的单元测试apose不断地这样做。 即使单元测试未正确执行,你只是把它作为一个中间的调试器。 我甚至会去尽量的话说,做一个单元测试项目作为apose到一个控制台应用程序调试代码,在获得准入方面它会让你的生活变得更加简单和未来,如果你想实现某种形式的单位测试你可以。

[TestMethod]
public class YourClassNameTests
{
  public T YourObject;
  [TestInitialize()]
  public void Initializer()
  {
    YourObject = new T();
  }
  [TestMethod()]
  public void YourMethodTest()
  {
    //Arrange
    YourObject.ReliantProperty = 1;
    //Act
    var objResult = YourObject.YourMethod();
    //Assert
    Assert.IsTrue(objResult == 1);
  }
}


Answer 2:

你有一对夫妇,我能想到的解决方案:

1)使用条件编译器选项。 例如,仅包括,如果它处于调试

#如果DEBUG

public void Main() {  
// Do Stuff  
}  

#万一

2)使主法internal ,或将其移动到测试项目,你可以运行。 然后,你可以直接使用它,或者确保您的测试DLL可以看到内部的方法。

3)从移动主方法成一个完全不同的.exe引用原始DLL。 (这类似于选项2不使用测试框架)。



文章来源: Visual Studio: Exclude a class if compiling as a dll