Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# (C)构建多目标框架时出现错误:“;无法打开';MyApi.dll';“用于写作”;_C#_Visual Studio_.net Core_Nswag_Target Framework - Fatal编程技术网

C# (C)构建多目标框架时出现错误:“;无法打开';MyApi.dll';“用于写作”;

C# (C)构建多目标框架时出现错误:“;无法打开';MyApi.dll';“用于写作”;,c#,visual-studio,.net-core,nswag,target-framework,C#,Visual Studio,.net Core,Nswag,Target Framework,我下面将使用NSwag自动生成一个API客户端。但该客户端需要支持多个目标框架: <TargetFrameworks>netcoreapp2.2;net452;net462;net472;net48</TargetFrameworks> netcoreapp2.2;net452;net462;net472;网络48 当我尝试构建此客户端时,会出现如下多个错误: (CS2012)无法打开“MyApi.dll”进行写入--“进程无法访问文件“MyApi.dll”,因为它正

我下面将使用NSwag自动生成一个API客户端。但该客户端需要支持多个目标框架:

<TargetFrameworks>netcoreapp2.2;net452;net462;net472;net48</TargetFrameworks>
netcoreapp2.2;net452;net462;net472;网络48
当我尝试构建此客户端时,会出现如下多个错误:

(CS2012)无法打开“MyApi.dll”进行写入--“进程无法访问文件“MyApi.dll”,因为它正被另一个进程使用。”


我怀疑这是因为每个框架都是异步构建的,并且从API生成的DLL试图被每个进程读取。如何解决这个问题/使每个目标框架同步构建?

我找到了一个解决方案。我对阅读和构建过程缺乏理解,这意味着我没有提出正确的问题

我在我的.csproj中指定了这个构建目标(按照指南中的指示):


还应注意,此解决方案可能不适用于所有希望其构建目标在每个构建中运行一次的人。请参阅提供了类似答案,但提供了有关多项目解决方案的更多详细信息。

检查csproj中的设置
AppendTargetFrameworkToOutputPath=false
。如果存在,请尝试更改为true。感谢@Maradik的回复。我没有那个设置,所以我试着用设置为true的值添加它。不幸的是,这不起作用。也没有把它改成假的。
<Target Name="NSwag" BeforeTargets="PrepareForBuild" Condition="'$(GenerateCode)'=='True' ">
  <Exec Command="$(NSwagExe_Core22) run nswag.json /variables:Configuration=$(Configuration)" />
</Target>
<Target Name="NSwag" BeforeTargets="DispatchToInnerBuilds" Condition="'$(GenerateCode)'=='True' ">
  <Exec Command="$(NSwagExe_Core22) run nswag.json /variables:Configuration=$(Configuration)" />
</Target>