测试DLL的MSBuild模式匹配
我有一个CreateItem任务来匹配单元测试程序集:测试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
此匹配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" />