我正在编写一段代码,它只是一堆JavaScript和JSON文件 - 它是一个grunt插件,而不是一个网站 - 我想编辑文件并通过以下方式管理源代码管理Visual Studio。
我正在尝试构建一个'vanilla'msbuild项目文件 - 而不是C#,而不是VB等,因为这些文件在这种文件中无效。我可以编写一个带有.msbuildproj
扩展名的非常简单的MSBuild文件,但无法将其加载到VS2013中,并且无法在任何地方找到示例。
任何人都知道如何将一个空的,独立于语言的项目放在一起,只是为了文件管理?
答案 0 :(得分:1)
你大多是对的:
Visual Studio项目(几乎所有现代类型)都是MSBuild项目。但是,Visual Studio仅加载具有扩展的项目。您无法加载任意MSBuild项目。 (当然,您始终可以将MSBuild文件编辑为XML。如果已将其作为项目加载,则必须先将其卸载以进行编辑。)
对于某些项目类型,您无法添加您喜欢的任何类型的文件。例如,WiX项目不允许您添加T4模板(.tt)文件。真遗憾。但是,您可以编辑项目以添加它们,这不应该破坏任何内容。但这完全取决于项目类型扩展的作者。尽管如此,我还没有找到任何我无法添加到C#和Visual Basic .NET项目的文件。
正如SLaks评论的那样,网站项目确实允许添加任何类型的文件,并且应该适用于您的案例。
答案 1 :(得分:1)
我找到了相同的msbuildproj扩展,并希望做类似的事情。我现在不关心在VS中实际构建。我只想在一些文件夹中包含所有文件,以减轻解决方案文件夹的缺点。经过一番搜索,我找到了this帖子。有了VS2017并且正在使用为.NET Core项目引入的新的MSBuild项目格式,我能够使以下内容为我工作。
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<Content Include="*" />
<!-- Use "**" for all sub-folders -->
<!--<Content Include="**" />-->
</ItemGroup>
<!-- A temporary solution, import C# Visual Studio design time targets in order to be able to load the project in Visual Studio -->
<PropertyGroup>
<CSharpDesignTimeTargetsPath Condition="'$(CSharpDesignTimeTargetsPath)'==''">$(MSBuildExtensionsPath)\Microsoft\VisualStudio\Managed\Microsoft.CSharp.DesignTime.targets</CSharpDesignTimeTargetsPath>
</PropertyGroup>
<Import Project="$(CSharpDesignTimeTargetsPath)" Condition="'$(CSharpDesignTimeTargetsPath)' != '' and Exists('$(CSharpDesignTimeTargetsPath)')" />
</Project>