【发布时间】:2020-11-24 17:26:43
【问题描述】:
我想创建一个 Visual Studio 项目,它可以让我看到一堆 JavaScript 和其他文件并正常编辑它们,但也有一个构建步骤可以运行我想要的任何自定义命令(目前是一些 npm 命令,以后可能更多)。基本上我想要结合 3 个功能:
- 能够像任何 VS 项目(C#、C++ 等)一样浏览和编辑文件
- 能够通过在 Visual Studio 中选择“构建”来运行自定义构建步骤(包括构建整个解决方案)。
- 能够从命令行 (MSBuild) 运行相同的自定义构建步骤。
使用“共享项目”(.shproj) 可以让我轻松查看和编辑文件,但上下文菜单中没有 Build 项,即使我手动添加了 Build 目标:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>...</ProjectGuid>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
<Import Project="MyItems.projitems" Label="Shared" />
<PropertyGroup>
<Configuration>Debug</Configuration>
<Platform>Any CPU</Platform>
</PropertyGroup>
<Target Name="Build">
<Exec Command="ECHO My custom build!" />
</Target>
</Project>
我也尝试过使用精简的 VC++ 项目(因为我实际上并不想运行 C++ 编译器),这允许从 VS 运行构建,但打开项目会记录警告,如 error MSB4057: The target "GetProjectDirectories" does not exist in the project.并尝试将文件添加到失败并出现该错误或类似错误。
一定有更简单的方法来做到这一点!
【问题讨论】:
-
你希望你的项目是什么,一个纯node.js控制台项目还是一个js web项目,一个c#核心编译器项目?您应该告诉我们其他文件的类型。在 VS IDE(按钮)中构建项目应该明确项目的类型。此外,如果要构建整个项目,则应明确项目最终将生成的类型。在 VS IDE 中使用 Build Button 并不是一件简单的事情。
-
并且不确定如何修改导致错误的 c++ vcxproj 文件。此外,按钮菜单来自
xxx.proj文件上MSBuild文件夹相关项目类型文件夹中的import targets="xxx\xxx.xxx"系统默认文件。因此,您应该确定最终要生成的项目的类型。不同类型的项目有不同的导入文件。有了它们,您就可以通过导入的 VS 构建文件在 VS IDE 中使用 Build Button。
标签: visual-studio msbuild