生成解决方案将文件生成到根目录或指定文件夹下

前提是,先把要放在根目录下的文件都始终复制。

例如:我要把下图两个文件中FASimulator和netcoreapp3.1的文件生成到根目录,首先先把这两个文件下的文件夹都点开,按shift或者ctrl选中,右击属性,选择始终复制。这样生成的时候就能生成的根目录对应的文件夹下。这是前提。

然后双击项目,在配置文件里下配置如下代码,实现把FASimulator和netcoreapp3.1这两个文件夹下的任意文件,在生成的时候复制到根目录下或者复制到根目录指定的文件夹下的效果。

cs 复制代码
	<Target Name="CopySecsFilesToOutput" BeforeTargets="BeforeBuild">		
		<!-- 设定需要复制的文件 -->
		<ItemGroup>
			<Rockey4NDFiles Include="netcoreapp3.1\Rockey4ND.dll" />
			<Rockey4NDFiles Include="netcoreapp3.1\Rockey4ND_X64.dll" />
			<Rockey4NDFiles Include="netcoreapp3.1\apidsp_darwin.dylib" />
			<Rockey4NDFiles Include="netcoreapp3.1\apidsp_windows.dll" />
			<Rockey4NDFiles Include="netcoreapp3.1\apidsp_windows_x64.dll" />
			<Rockey4NDFiles Include="netcoreapp3.1\hasp_net_core.dll" />
			<Rockey4NDFiles Include="netcoreapp3.1\hasp_rt.exe" />
			<Rockey4NDFiles Include="netcoreapp3.1\hasp_windows_24160.dll" />
			<Rockey4NDFiles Include="netcoreapp3.1\hasp_windows_x64_24160.dll" />
			<Rockey4NDFiles Include="netcoreapp3.1\haspvlib_24160.dll" />
			<Rockey4NDFiles Include="netcoreapp3.1\haspvlib_24160.so" />
			<Rockey4NDFiles Include="netcoreapp3.1\haspvlib_x86_64_24160.so" />
			<Rockey4NDFiles Include="netcoreapp3.1\libapidsp_linux_arm64.so" />
			<Rockey4NDFiles Include="netcoreapp3.1\libapidsp_linux_x86_64.so" />
			<Rockey4NDFiles Include="netcoreapp3.1\libhasp_linux_arm64_24160.a" />
			<Rockey4NDFiles Include="netcoreapp3.1\libhasp_linux_arm64_24160.so" />
			<Rockey4NDFiles Include="netcoreapp3.1\libhasp_linux_armhf_24160.a" />
			<Rockey4NDFiles Include="netcoreapp3.1\libhasp_linux_x86_64_24160.a" />
			<Rockey4NDFiles Include="netcoreapp3.1\libhasp_linux_x86_64_24160.so" />
			<Rockey4NDFiles Include="netcoreapp3.1\libRockey4ND.so" />
			<Rockey4NDFiles Include="netcoreapp3.1\libRockey4ND.x86.a" />
			<Rockey4NDFiles Include="netcoreapp3.1\libRockey4ND.x86.so.0.3" />
			<Rockey4NDFiles Include="netcoreapp3.1\libRockey4ND.x86_64.a" />
			<Rockey4NDFiles Include="netcoreapp3.1\libRockey4ND.x86_64.so.0.3" />
			<Rockey4NDFiles Include="netcoreapp3.1\License.dat" />			
		</ItemGroup>
		<!-- 执行文件复制操作 -->
		<Copy SourceFiles="@(Rockey4NDFiles)" DestinationFolder="$(OutputPath)" /><!-- 放根目录下 -->
	</Target>


	<Target Name="Copylibcpsrtso" BeforeTargets="BeforeBuild">
		<ItemGroup>
			<libcpsrtsoFiles Include="netcoreapp3.1\cpsrt\lin\x64\libcpsrt.so" />
		</ItemGroup>
		<Copy SourceFiles="@(libcpsrtsoFiles)" DestinationFolder="$(OutputPath)cpsrt\lin\x64\" /><!--放根目录的cpsrt\lin\x64\下 -->
	</Target>

	<Target Name="Copylibcpsrtdll64" BeforeTargets="BeforeBuild">
		<ItemGroup>
			<libcpsrtdll64Files Include="netcoreapp3.1\cpsrt\win\x64\cpsrt.dll" />
		</ItemGroup>
		<Copy SourceFiles="@(libcpsrtdll64Files)" DestinationFolder="$(OutputPath)cpsrt\win\x64\" /><!--放根目录的cpsrt\win\x64\下 -->
	</Target>

	<Target Name="Copylibcpsrtdll86" BeforeTargets="BeforeBuild">
		<ItemGroup>
			<libcpsrtdll86Files Include="netcoreapp3.1\cpsrt\win\x86\cpsrt.dll" />
		</ItemGroup>
		<Copy SourceFiles="@(libcpsrtdll86Files)" DestinationFolder="$(OutputPath)cpsrt\win\x86\" /><!--放根目录的cpsrt\win\x86\下 -->
	</Target>

	<Target Name="FASimulator" BeforeTargets="BeforeBuild">		
		<ItemGroup>
			<FASimulatorFiles Include="FASimulator\FASimulator Manual Ver 1.01 (EN).pdf" />
			<FASimulatorFiles Include="FASimulator\FASimulator Manual Ver 1.01.pdf" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Config\SECS\GEM Format.txt" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Config\SECS\GEM Format_Host.txt" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Config\SECS\GEM300 Format.txt" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Config\SECS\GEM300 Format_Host.txt" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\212121.fas" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Delta.DIAAuto.Simulator.Core.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Delta.DIAAuto.Simulator.Core.pdb" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Delta.DIAAuto.Simulator.Log.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Delta.DIAAuto.Simulator.Log.pdb" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Delta.DIAAuto.Simulator.SECS.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Delta.DIAAuto.Simulator.SECS.pdb" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\DIASECS.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\HVM412_DIAAuto_FASimulator.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\HVM412_DIAAuto64_FASimulator.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\License.dat" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\log4net.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Newtonsoft.Json.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\NLog.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\ProductLicenseChecker.dll" />
			<!--<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Rockey4ND.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Rockey4ND_X64.dll" />-->
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\SECSGEM_Eqp.fas" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\SECSGEM_Host.fas" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\SECSGEM300_Eqp.fas" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\SECSGEM300_Host.fas" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\SimulatorWorkbench.exe" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\SimulatorWorkbench.exe.config" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\SimulatorWorkbench.pdb" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\SoftLicenseAPI.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\UniAuto.UniBCS.Core.Cryptography.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\UniAuto.UniBCS.Log.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\UniAuto.UniBCS.Message.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\UniTreeGridView.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\Unme.Common.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\WeifenLuo.WinFormsUI.Docking.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\WeifenLuo.WinFormsUI.Docking.pdb" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\WeifenLuo.WinFormsUI.Docking.ThemeVS2015.dll" />
			<FASimulatorFiles Include="FASimulator\FASimulator_1.0.0.13\WeifenLuo.WinFormsUI.Docking.ThemeVS2015.pdb" />
		</ItemGroup>
		<Copy SourceFiles="@(FASimulatorFiles)" DestinationFolder="$(OutputPath)" /><!-- 放根目录下 -->
	</Target>

1.复制到根目录下,例如:DestinationFolder="$(OutputPath)",这是生成到根目录下

复制代码
<Target Name="CopySecsFilesToOutput" BeforeTargets="BeforeBuild">		
	<!-- 设定需要复制的文件 -->
	<ItemGroup>
		<Rockey4NDFiles Include="netcoreapp3.1\Rockey4ND.dll" />
		<Rockey4NDFiles Include="netcoreapp3.1\Rockey4ND_X64.dll" />
	</ItemGroup>
	<!-- 执行文件复制操作 -->
	<Copy SourceFiles="@(Rockey4NDFiles)" DestinationFolder="$(OutputPath)" /><!-- 放根目录下 -->
</Target>

2.复制到根目录指定的文件夹下 例如: DestinationFolder="$(OutputPath)cpsrt\lin\x64\",这个是生成到根目录的cpsrt文件夹里的lin里的x64里。

复制代码
	<Target Name="Copylibcpsrtso" BeforeTargets="BeforeBuild">
		<ItemGroup>
			<libcpsrtsoFiles Include="netcoreapp3.1\cpsrt\lin\x64\libcpsrt.so" />
		</ItemGroup>
		<Copy SourceFiles="@(libcpsrtsoFiles)" DestinationFolder="$(OutputPath)cpsrt\\lin\\x64\\" /><!--放根目录的cpsrt\lin\x64\下 -->
	</Target>

注意:Name和SourceFiles不能重名

相关推荐
小羊没烦恼!1 天前
分布式事务 | 使用DTM 的Saga 模式
java·linux·运维·数据库·wpf
samble2 天前
从零搭建半导体设备上位机(二):Prism + DryIoc,五个工程与区域导航怎么串起来
wpf·prism·dryioc
一条闲鱼_mytube2 天前
分布式 ID 生成方案:雪花算法与号段模式
分布式·算法·wpf
她说彩礼65万2 天前
WPF Prism代码走读
wpf
光泽雨5 天前
动画生命周期
c#·wpf
nap1176 天前
WPF 中常用的 LINQ 语句
wpf
做个文艺程序员9 天前
MQ第12篇:AI原生消息架构演进:从MQ到事件驱动的全链路设计
架构·消息队列·wpf·事件驱动架构·ai-native·cqrs
donk131411 天前
React Native for OpenHarmony 实战:三方库 react-native-circular-action-menu 的鸿蒙化适配指南
javascript·分布式·react native·react.js·wpf·harmonyos
donk131412 天前
React Native for OpenHarmony 实战:三方库 react-native-step-indicator 的鸿蒙化适配指南
分布式·react native·react.js·wpf·harmonyos