我有大约50个项目的解决方案。 这些项目有两个目标框架:netcore1.1和.net 4.6。 所有项目都基于xproj。
因此,作为构建结果,我在bin / $ configuration / $ targetfw /中有二进制文件。 F.ex.在我的情况下,我在bin / debug / netcoreapp和bin / debug / net462输出中有二进制文件。
但我也需要在/ bin目录中复制bin / debug / net462内容。
如何通过project.json中的脚本或其他所有50个解决方案的项目正确使用它? 如果git源代码控制不可见,那就太棒了。
P.S。为什么我需要它?因为VS代码映射工具直接在bin中查找二进制文件
UPD。
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
<PropertyGroup Label="Globals">
<ProjectGuid>9e2d06cb-21aa-4457-ab44-6e67298037e3</ProjectGuid>
<RootNamespace>SmartDoc.Domain.Document</RootNamespace>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
<OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
</Project>
答案 0 :(得分:1)
如何通过project.json中的脚本或其他所有50个解决方案的项目正确使用它?如果git源代码控制不可见,那就太棒了。
您可以添加自定义MSBuild任务,以将二进制文件从bin/$configuration/$targetfw/
复制到/bin
目录。
要完成此操作,请在结束标记</Project>
之前卸载项目,编辑项目,添加以下代码:
<ItemGroup>
<MySourceFiles Include="$(ProjectDir)bin\$(Configuration)\**\$(ProjectName).dll"/>
</ItemGroup>
<Target Name="TestCopy" AfterTargets="Build">
<Message Text ="Copy file to bin folder." Importance="high"></Message>
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="$(ProjectDir)bin"
/>
</Target>
使用此目标,VS / MSBuild会将.dll
文件复制到/bin
目录。
注意:由于我们必须修改项目文件,因此必须在git源代码控制中显示此修复。
<强>更新强>
我可以修改f.ex. Microsoft.DotNet.Props文件并添加您的修复程序 瞄准那里?
是的,你可以。经过测试,它运行正常。但我需要解释一下,我们不建议使用此解决方案,因为它可能会影响导入Microsoft.DotNet.targets
的所有项目。因此,当您使用此方法时,您应该多加注意,并应备份Microsoft.DotNet.targets
。
希望这有帮助。