MSBuild-如何包含/排除目录?

时间:2019-01-23 09:40:42

标签: visual-studio msbuild csproj

我正在尝试从Windows命令行构建Visual Studio解决方案,如下所示:

msbuild solution.sln /t:Build /p:Configuration=Release 

但是我需要从一个项目中排除某个目录,并包括另一个目录。我该怎么办?

2 个答案:

答案 0 :(得分:1)

在您的项目filename = 'G:\RUN\User.xlsm'; myExcel = actxserver('Excel.Application'); myExcel.Workbooks.Open(filename); myExcel.Run('mySheet.myMacro', a); 文件中使用它:

csproj

当然,您已经设置了<Compile Include="Folder1/*" Condition=" '$(Configuration)' == 'Release' " /> <Compile Exclude="Folder2/*" Condition=" '$(Configuration)' == 'Release' " /> 属性,但是您可以将其替换为您自己的属性,并通过与Configuration相同的命令行对其进行设置。

答案 1 :(得分:0)

在项目目录中,添加两个文件夹“ CppFilesForDebug”和“ CppFilesForRelease”。

“ CppFilesForDebug”文件夹包含“ Debug1.cpp,Debug2.cpp,Debug3.cpp”,而“ CppFilesForRelease”文件夹包含“ Release1.cpp,Release2.cpp,Release3.cpp”。

然后在vcxproj文件底部添加add语句,如下面的红色矩形所示:  enter image description here

红色矩形表示在使用调试模式时,我们在“ CppFileForDebug”文件夹中生成和编译cpp文件。在发布模式下,我们仅在“ CppFilesForDebug”文件夹中的cpp文件中编译“ CppFilesForRelease”文件夹中的cpp文件。

我在VS2015和VS2017中使用C ++项目对其进行了测试,并且可以正常工作。我认为您的命令"msbuild solution.sln /t:Build /p:Configuration=Release"可以很好地进行。请尝试一下,任何反馈都很好。

更新: 如果您的问题是由QT冲突引起的,则在vs中,进入QT菜单-> Qt项目设置-> MocDirectory->将其更改为

.\GeneratedFiles

注意:不要忘了“。”在\ GenerateFiles之前。希望能帮助到你。您可以在这里分享任何更新。