Visual Studio解决方案中的Markdown文档

时间:2018-02-03 16:43:09

标签: c# visual-studio markdown

我使用c#和Visual Studio 2017开始了一个新项目。我的目标是管理Visual Studio中的文档,将所有文件放在一个地方,并在TFS / Git中提供完整且易于访问的历史记录。
我有src文件夹中的代码,test文件夹中的测试项目,docs文件夹中的Markdown文件(我使用Markdown Editor)。根文件夹中还有一个Readme.md:

enter image description here

现在有一些问题:

  • Visual Studio中的结构与文件系统中的结构不同。我在Visual Studio中创建的所有md-Files都放在Solution的根目录中。我可以在Windows资源管理器中创建文件并添加"现有项目"但是这个 是一种痛苦。
  • 我可以在Visual Studio中移动md文件但是他们不会在文件系统中移动。
  • 所有文件引用都保存在sln文件中,这会改变很多。我想避免这种情况。

我读到了关于创建一个空的c#项目并禁用该项目的构建,但这似乎也是一个黑客。

是否有一些建议来管理Visual Studio中的文档文件?

1 个答案:

答案 0 :(得分:1)

this answer一样,只要您使用{{}},就可以使用Visual Studio 2017中的链接文件功能链接整个目录 {3}}除了Visual Studio 2017 15.3 +之外,您还安装了.NET Core 2.0 SDK。

<EmbeddedResource Include="..\..\..\docs\**\*.md" LinkBase="docs" />

这将使用项目的相对路径将docs子文件夹链接到名为docs的项目(LinkBase)中的文件夹。每次添加,删除或更改docs文件夹或嵌套文件夹中的文件时,Visual Studio都会识别这些更改(如果文件已经打开,它可能会提示您在Visual Studio中更新该文件)。

new .csproj project format

请注意,您也可以在EmbeddedResource以外的其他enter image description here上使用此功能,例如ContentCompileNone

项目

从技术上讲,Visual Studio解决方案文件项目。您可以通过在文本编辑器中打开.sln文件来查看此内容:

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{4016BDAB-6C33-4D1E-9439-57B416EA45D5}"
    ProjectSection(SolutionItems) = preProject
        build.bat = build.bat
        build\build.ps1 = build\build.ps1
        src\CommonAssemblyInfo.cs = src\CommonAssemblyInfo.cs
        TestTargetFramework.proj = TestTargetFramework.proj
        Version.proj = Version.proj
    EndProjectSection
EndProject

不幸的是,MSBuild Project Items并没有提供很多选择。正如您在.sln format中看到的那样,ProjectSection只列出项目的依赖关系,并且可以选择指定&#34; real&#34;相对文件路径。但这就是它。根据{{​​3}},无法将目录链接到.sln文件中的另一个目录。

上述解决方案项目&#34;项目&#34;之间的唯一区别而.csproj项目是后者转移控制文件添加到.csproj(MSBuild)文件的位置。

Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyProject", 
"src\MyProject\MyProject.csproj", "{3A0AA37E-2B7B-4416-B528-DA4E0E6A6706}"
EndProject

但是,正如Hack the Project and Solution Files所指出的,另一种解决方法是添加网站项目,这将添加一个没有.csproj文件的项目来跟踪文件在磁盘上&#34;实时&#34;,类似于新的.csproj格式在Visual Studio 2017中的工作方式。