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

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

例如:我要把下图两个文件中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不能重名

相关推荐
gis开发之家12 小时前
Spring Boot 4 定时任务与异步线程池:从 @Scheduled 到高并发任务编排(生产级实战)
java·spring boot·后端·wpf·spring boot4
clz13145211 天前
如何设计一个优雅可靠的金融级联机接口
wpf
闲云自留地2 天前
云平台存储管理员:Cinder 创建挂载卷 + Swift 分布式存储原理
分布式·wpf·swift
敲代码的嘎仔3 天前
从集群锁失效到异步领券:我用分布式锁 + Redisson + MQ 把领券接口 RT 从 200ms 压到 15ms
java·数据库·redis·分布式·缓存·ai·wpf
闲云自留地3 天前
OpenStack 的身份管家:Keystone 令牌、RBAC 权限模型拆解
wpf·openstack
FuckPatience5 天前
WPF 窗体唤醒,判断是否已存在,存在则弹出
wpf
程序员清风5 天前
从单体应用到微服务:后端系统拆分的基本方法
微服务·架构·wpf
FuckPatience6 天前
WPF 改变根据某一列条件改变行样式
wpf
dalong107 天前
WPF:DataGrid样式
wpf
samble9 天前
从零搭建工业控制系统(二十二):线程安全与并发控制
c#·wpf·并发·mvvm·线程安全·工业控制