在
这个答案中提到,如果你使用
新的.csproj
项目格式并且除了Visual Studio 2017 15.3+之外还安装了.NET Core 2.0 SDK,那么在Visual Studio 2017中可以使用“链接文件”功能来链接
整个目录。请注意,需要保留HTML标签。
<EmbeddedResource Include="..\..\..\docs\**\*.md" LinkBase="docs" />
这将使用项目的相对路径将名为
docs
的文件夹链接到项目中的一个文件夹(LinkBase)。每当您添加、删除或更改
docs
文件夹或嵌套文件夹中的文件时,Visual Studio都会识别更改(如果它已经打开,它可能会提示您在Visual Studio中更新文件)。
![enter image description here](https://istack.dev59.com/SkYvU.webp)
请注意,您也可以在其他
MSBuild项目项上使用此功能,例如
Content
、
Compile
或
None
,请保留HTML标记。
项目
从技术上讲,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
很遗憾,.sln
格式没有提供太多选项。正如您在Hack the Project and Solution Files中所看到的那样,ProjectSection
仅列出项目的依赖关系,并可选择性地指定“真实”的相对文件路径。但基本上就是这样了。根据this similar question的说法,在.sln
文件中不可能将一个目录链接到另一个目录。
以上解决方案项“项目”与.csproj
项目之间唯一的区别在于,后者将文件添加到.csproj
(MSBuild)文件中。
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyProject",
"src\MyProject\MyProject.csproj", "{3A0AA37E-2B7B-4416-B528-DA4E0E6A6706}"
EndProject
然而,正如
this answer所指出的那样,另一种解决方法是添加一个
网站项目(Web Site Project),它将添加一个没有
.csproj
文件的项目,该文件实时跟踪磁盘上的文件,类似于Visual Studio 2017中新的
.csproj
格式的工作方式。