smw*_*dia 31 visual-studio-2008 visual-studio
我正在使用文本编辑器手动编辑我的*.sln文件.我对以下几行感到困惑:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test2008", "Tools\Test2008\Test2008\Test2008.csproj", "{00B5EBB2-FDA5-4B23-BDC5-27E9F82E7C69}"
ProjectSection(ProjectDependencies) = postProject
{82B9BEC0-C9CC-4423-B54F-61E3C4AF53D8} = {82B9BEC0-C9CC-4423-B54F-61E3C4AF53D8}
EndProjectSection
EndProject
Run Code Online (Sandbox Code Playgroud)
这有什么意义呢
{82B9BEC0-C9CC-4423-B54F-61E3C4AF53D8} = {82B9BEC0-C9CC-4423-B54F-61E3C4AF53D8}
声明?它看起来完全是多余的.
Nic*_*oiu 24
该{82B9BEC0-C9CC-4423-B54F-61E3C4AF53D8} = {82B9BEC0-C9CC-4423-B54F-61E3C4AF53D8}行表示Test2008项目在项目上具有声明的依赖关系(通过VStudio中的Project Dependencies对话框设置),具有唯一标识符82B9BEC0-C9CC-4423-B54F-61E3C4AF53D8.您应该能够在同一.sln文件中找到具有相同标识符的项目.
至于为什么行的奇怪语法,我没有.sln文件格式的内幕知识.但是,根据对.sln文件中其他ProjectSection提取的观察,我不得不猜测Visual Studio使用的.sln解析器历来假定ProjectSection行将采用一种key = value格式,并且在任何给定的部分中都强制执行密钥唯一性.我还猜想那些实现项目依赖功能的人决定不使用解析器,而是使用projectId = projectId它们的剖面线更简单,因为密钥对它们毫无意义,但只保证它们是唯一的否则强制执行从项目A到项目B的一个依赖项.
Mic*_*ann 17
似乎这种冗余语法是MSBuild识别项目依赖性所需的怪癖之一:
Visual Studio似乎以两种方式保留依赖关系,其中只有一种方式由MSBuild读取.我看到了,因为我仍然可以在GUI中指定依赖关系,将解决方案复制到其他计算机并使用VS以正确的顺序构建它.- Victor Sergienko
至于为什么需要这个"多余的方程式声明",似乎将项目的guid分配给它自己的guid是MSBuild 4.0问题的一种解决方法,导致MSBuild无法识别或响应解决方案中列出的某些项目依赖项(. sln)文件,或者无序地构建依赖项.
您所询问的"{x} = {x}"语法是用于引用项目的标准MSBuild语法的变体(即示例@Sergio的答案).
显然,将依赖项声明嵌入到ProjectSection块中并结合自命名的依赖项GUID会导致MSBuild更改所依赖项目的构建顺序,但实际上并未向其添加另一个引用.
有关Microsoft Connect的讨论,其中讨论了此解决方法.在其中,来自微软的Dan在页面的第二篇文章中提出了针对此MSBuild故障的更清晰的解决方法,并且还提到了您要求的修复:
这修复了排序,因为现在LibraryProject将等待CodeGeneratingProject,但其构建将不会受到影响.我可以通过删除解决方案文件中的依赖项来整理 - 删除这些现在不必要的行:
<ProjectReference Include="... foo.csproj">
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)
它仍然可以正常工作.
来自MSDN:
此语句包含唯一项目GUID和项目类型GUID.环境使用此信息来查找属于解决方案的项目文件或文件,以及每个项目所需的VSPackage.
项目GUID传递给IVsProjectFactory以加载与项目相关的特定VSPackage,然后由VSPackage加载项目.在这种情况下,为此项目加载的VSPackage是Visual Basic.
例如:
项目("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}")="Project1","Project1.vbproj","{8CDD8387-B905-44A8-B5D5-07BB50E05BEA}"EndProject
| 归档时间: |
|
| 查看次数: |
13030 次 |
| 最近记录: |