我使用c#和Visual Studio 2017开始了一个新项目。我的目标是管理Visual Studio中的文档,将所有文件放在一个地方,并在TFS / Git中提供完整且易于访问的历史记录。
我有src
文件夹中的代码,test
文件夹中的测试项目,docs
文件夹中的Markdown文件(我使用Markdown Editor)。根文件夹中还有一个Readme.md:
现在有一些问题:
我读到了关于创建一个空的c#项目并禁用该项目的构建,但这似乎也是一个黑客。
是否有一些建议来管理Visual Studio中的文档文件?
答案 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中更新该文件)。
请注意,您也可以在EmbeddedResource
以外的其他上使用此功能,例如Content
,Compile
或None
。
从技术上讲,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中的工作方式。