VS2017中xcopy命令执行报错(错误码9009)求助
解决VS2017中命令执行错误代码9009的问题
看起来你遇到的错误代码9009是Windows命令行执行失败的典型表现,通常是因为命令解析错误、系统找不到对应命令,或者路径/权限问题导致的。结合你的场景,我整理了几个针对性的解决方案:
1. 修复生成事件中的命令格式
你的命令串里包含多个连续操作,但可能因为缺少命令分隔符或者引号包裹问题导致系统无法正确解析。建议把命令修改为用&分隔每个独立操作,确保每个路径的引号正确:
if not exist "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\x86" md "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\x86" & xcopy /s /y "C:\binance projects\Coin trading\CoinTNet-master\packages\Microsoft.SqlServer.Compact.4.0.8876.1\NativeBinaries\x86\*.*" "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\x86" & if not exist "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\amd64" md "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\amd64" & xcopy /s /y "C:\binance projects\Coin trading\CoinTNet-master\packages\Microsoft.SqlServer.Compact.4.0.8876.1\NativeBinaries\amd64\*.*" "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\amd64"
修改步骤:右键你的项目 → 属性 → 生成事件 → 预生成事件(或生成事件),替换原命令后保存重新生成。
2. 确认系统命令的可访问性
错误9009也可能是系统找不到md或xcopy命令导致的。你可以打开Windows命令提示符(cmd),直接输入md和xcopy,如果提示“不是内部或外部命令”,说明这些命令所在的路径(通常是C:\Windows\System32)不在系统的PATH环境变量中。
解决方法:
- 右键“计算机” → 属性 → 高级系统设置 → 环境变量
- 在系统变量的PATH中添加
C:\Windows\System32(如果不存在的话) - 重启VS后再尝试生成
3. 检查目标文件夹的权限
确保你的Windows用户账户对C:\binance projects\...这个路径有读写权限。如果权限不足,系统无法创建文件夹或复制文件:
- 右键目标根文件夹(比如
CoinTNet-master) → 属性 → 安全选项卡 - 找到当前登录用户,勾选“完全控制”权限,应用后重新生成
4. 验证NuGet包的完整性
检查你的packages文件夹中Microsoft.SqlServer.Compact.4.0.8876.1包是否完整,特别是NativeBinaries\x86和NativeBinaries\amd64文件夹下是否有对应的.dll文件。如果包损坏或缺失:
- 删除项目根目录下的
packages文件夹 - 在VS中右键项目 → NuGet包管理器 → 还原NuGet包
- 等待包还原完成后重新生成
5. 使用命令的绝对路径作为备选
如果上述方法都无效,可以尝试在命令中使用md和xcopy的绝对路径,确保系统能找到命令:
if not exist "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\x86" C:\Windows\System32\md "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\x86" & C:\Windows\System32\xcopy /s /y "C:\binance projects\Coin trading\CoinTNet-master\packages\Microsoft.SqlServer.Compact.4.0.8876.1\NativeBinaries\x86\*.*" "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\x86" & if not exist "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\amd64" C:\Windows\System32\md "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\amd64" & C:\Windows\System32\xcopy /s /y "C:\binance projects\Coin trading\CoinTNet-master\packages\Microsoft.SqlServer.Compact.4.0.8876.1\NativeBinaries\amd64\*.*" "C:\binance projects\Coin trading\CoinTNet-master\CoinTNet\bin\Debug\amd64"
内容的提问来源于stack exchange,提问作者Vimal
相关产品推荐
相关产品推荐

