当我在C#中创建并编译"hello world"应用程序时,除了主exe之外,我在Debug文件夹中得到三个文件(例如HelloWorld.exe)
这些文件的用途是什么?
我花了几天的时间,终于找到了一个似乎有效的解决方案。然而,它似乎有点脆弱,或者可能是不明智的。
我希望所有非系统引用的程序集(当前使用的项目库是 NuGet 管理的)都包含在构建输出的“libs”子文件夹中。
我的 csproj 文件底部包含的以下代码段执行此操作(通过谷歌搜索和我在这里找到的几个问题构建。)
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. -->
<Target Name="BeforeBuild">
<Message Text="### Removing existing 'lib' folder" Importance="high" />
<RemoveDir Directories="$(TargetDir)libs" />
</Target>
<Target Name="MoveLibrariesOnBuild" AfterTargets="Build">
<ItemGroup>
<Libraries Include="%(Reference.HintPath)" >
<MissingHintPath>$([MSBuild]::ValueOrDefault('%(Reference.HintPath)', '').Equals(''))</MissingHintPath>
</Libraries>
</ItemGroup>
<Message Text="### Moving libraries to 'libs' ###" Importance="high" />
<Copy SourceFiles="@(Libraries)"
DestinationFiles="$(TargetDir)libs\%(Filename).dll"
Condition="%(Libraries.MissingHintPath) == False"
SkipUnchangedFiles="false"
OverwriteReadOnlyFiles="true" />
</Target> …Run Code Online (Sandbox Code Playgroud)