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

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

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

相关推荐
周杰伦fans1 天前
掌握 MVVM Light:.NET 桌面应用开发的 MVVM 利器,掌握 ObservableObject、RelayCommand 和 Messenger
c#·wpf
Ws_1 天前
WPF 面试题 + 参考答案,偏 C# 桌面端开发高频。
开发语言·c#·wpf
LCG元2 天前
现代Web应用高可用架构设计与性能调优实战
前端·wpf
小二·2 天前
向量数据库深度对比:PGVector vs Qdrant vs Milvus vs Chroma(附性能测试数据)
数据库·wpf·milvus
周杰伦fans3 天前
WPF TextBlock 中 Run 元素实战——从密码强度检测到 MVVM 绑定
wpf
largecode4 天前
座机号码认证如何操作?申请热线实名名片,树立统一官方客服形象
linux·sql·华为·c#·.net·wpf·harmonyos
小满Autumn4 天前
WPF 入门:XAML 语法、布局与数据绑定
microsoft·c#·.net·wpf
小满Autumn4 天前
WPF 进阶:样式、触发器与控件模板
c#·.net·wpf
她说彩礼65万5 天前
WPF视觉树 逻辑树
wpf