一个C#项目,如果为同一个解决方案的其他项目所引用,则其编译后,会将DLL拷贝到引用项目中;但如果它并不被其他项目引用,但又想编译后能够自动将生成的东西拷贝过去,可以在项目的生成事件中,写上一些批处理命令,拷贝指定的内容。
项目的生成事件,可以右击项目,弹出菜单中选属性,即可见到。
下面是一个批处理示例:
SET Area=Test SET SolutionDir=D:svn runkCodeSolution SET ProjectName=SubWeb set PluginDirectory="%SolutionDir%WebPlugins\%Area%" set PluginViewDirectory="%SolutionDir%WebPlugins\%Area%Views" set PluginBinDirectory="%SolutionDir%WebPlugins\%Area%in" set PluginContentDirectory="%SolutionDir%WebPlugins\%Area%Content" set PluginScirptsDirectory="%SolutionDir%WebPlugins\%Area%Scripts" set PluginWebConfig="%SolutionDir%WebPlugins\%Area%" set PluginTemplateDirectory="%SolutionDir%WebPlugins\%Area%Template" set PluginFunctionXmlFile="%SolutionDir%WebPlugins\%Area%" set ProjectViewDirectory="%SolutionDir%%ProjectName%Views" set ProjectBinDirectory="%SolutionDir%%ProjectName%in" set ProjectContentDirectory="%SolutionDir%%ProjectName%Content" set ProjectScirptsDirectory="%SolutionDir%%ProjectName%Scripts" set ProjectWebConfig="%SolutionDir%%ProjectName%Web.config" set ProjectTemplateDirectory="%SolutionDir%%ProjectName%Template" set ProjectFunctionXmlFile="%SolutionDir%%ProjectName%menu.xml" C:WindowsSystem32xcopy.exe /s /y %ProjectViewDirectory%*.cshtml %PluginViewDirectory% rem C:WindowsSystem32xcopy.exe /s /y %ProjectBinDirectory% %PluginBinDirectory% rem C:WindowsSystem32xcopy.exe /s /y %ProjectScirptsDirectory% %PluginScirptsDirectory% rem C:WindowsSystem32xcopy.exe /s /y %ProjectWebConfig% %PluginWebConfig% rem C:WindowsSystem32xcopy.exe /s /y %ProjectTemplateDirectory% %PluginTemplateDirectory% rem C:WindowsSystem32xcopy.exe /s /y %ProjectFunctionXmlFile% %PluginFunctionXmlFile%
我们也可以将这些批处理命令写到一个批处理文件,然后在VS里添加一个指向该BAT的外部命令。这样在VS里就可以随时点击触发,方便得很。
这种方法尤其适合只拷贝一些非DLL等无须编译的文件。
添加外部命令的方法是在VS中,工具-外部工具,编辑好后,命令会自动出现在工具菜单中。
版权声明:本文为博主原屙文章,喜欢你就担走。