Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
测试DLL的MSBuild模式匹配_Msbuild - Fatal编程技术网

测试DLL的MSBuild模式匹配

测试DLL的MSBuild模式匹配,msbuild,Msbuild,我有一个CreateItem任务来匹配单元测试程序集: 此匹配dll类似于: Company.Product.Component1.Test.dll Company.Product.Component2.UnitTests.dll Company.Product.UnitTestFramework1.dll Company.Product.UnitTestFramework2.dll 我的问题是如何更改匹配模式以仅选择单元测试(具有test、Tests、UnitTest或UnitTest

我有一个CreateItem任务来匹配单元测试程序集:


此匹配dll类似于:

  • Company.Product.Component1.Test.dll
  • Company.Product.Component2.UnitTests.dll
  • Company.Product.UnitTestFramework1.dll
  • Company.Product.UnitTestFramework2.dll

我的问题是如何更改匹配模式以仅选择单元测试(具有test、Tests、UnitTest或UnitTests命名约定),而不选择框架dll。

只需增量添加test.dll和Tests.dll即可。以下内容将满足您的要求:

<CreateItem Include="%(Solution.RelativeDir)**\bin\$(Configuration)\*Test.dll">
    <Output ItemName="TestDlls" TaskParameter="Include"/>
</CreateItem> 
<CreateItem Include="%(Solution.RelativeDir)**\bin\$(Configuration)\*Tests.dll">
    <Output ItemName="TestDlls" TaskParameter="Include"/>
</CreateItem> 

或者,您可以使用原始项定义添加,然后删除那些与框架模式匹配的文件。例如:

<CreateItem Include="%(Solution.RelativeDir)**\bin\$(Configuration)\*Test*.dll">
    <Output ItemName="TestDlls" TaskParameter="Include"/>
</CreateItem> 
<CreateItem Remove="*Framework*.dll" />

这不是它已经在做的吗?它目前包括哪些“框架DLL”?
<CreateItem Include="%(Solution.RelativeDir)**\bin\$(Configuration)\*Test*.dll">
    <Output ItemName="TestDlls" TaskParameter="Include"/>
</CreateItem> 
<CreateItem Remove="*Framework*.dll" />