dotnet / sdk

Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI
https://dot.net/core
MIT License
2.7k stars 1.06k forks source link

Explicit DocumentationFile=path instead of GenerateDocumentationFile=true leads to build race #1599

Open nguerrera opened 7 years ago

nguerrera commented 7 years ago

Previously, C# projects would set an explicit intermediate path for the documentation file. This leads to using the same intermediate path for different TFMs that are built in parallel. We implemented GenerateDocumentationFile=true, but users porting existing projects might not know about it.

While the fix is simple (use GenerateDocumentationFile), the error is intermittent and doesn't at all hint at the fix: "cannot write to obj\Debug\Something.xml: already in use".

We should detect when the DocumentationFile is going to be written to the intermediate output path minus TFM in a multi-targeted project and issue an error. Alternatively, we could implement a fixup to insert the TFM in to the DocumentationFile path.

See also:

KalleOlaviNiemitalo commented 2 years ago

@vlada-shubina, did you close this by mistake? https://github.com/dotnet/sdk/commit/d8bb6c240d10ae4678bb7cd9f23616b10ef136a1 seems to relate to https://github.com/dotnet/templating/issues/1599 and not to this https://github.com/dotnet/sdk/issues/1599.

vlada-shubina commented 2 years ago

@vlada-shubina, did you close this by mistake? d8bb6c2 seems to relate to dotnet/templating#1599 and not to this #1599.

yes, it was incorrectly closed. I will check what else might be affected shortly